home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / Hack / MISC / HACKDIC3.ZIP / JARGON3.TXT < prev   
Encoding:
Text File  |  1993-06-24  |  374.3 KB  |  7,421 lines

  1. :plonk: [USENET: possibly influenced by British slang `plonk' for
  2.    cheap booze, or `plonker' for someone behaving stupidly] The sound
  3.    a {newbie} makes as he falls to the bottom of a {kill file}.
  4.    Used almost exclusively in the {newsgroup} talk.bizarre,
  5.    this term (usually written "*plonk*") is a form of public
  6.    ridicule.
  7.  
  8. :plugh: /ploogh/ [from the {ADVENT} game] v. See {xyzzy}.
  9.  
  10. :plumbing: [UNIX] n. Term used for {shell} code, so called
  11.    because of the prevalence of `pipelines' that feed the output of
  12.    one program to the input of another.  Under UNIX, user utilities
  13.    can often be implemented or at least prototyped by a suitable
  14.    collection of pipelines and temp-file grinding encapsulated in a
  15.    shell script; this is much less effort than writing C every time,
  16.    and the capability is considered one of UNIX's major winning
  17.    features.  A few other OSs such as IBM's VM/CMS support similar
  18.    facilities.  Esp. used in the construction `hairy plumbing'
  19.    (see {hairy}).  "You can kluge together a basic spell-checker
  20.    out of `sort(1)', `comm(1)', and `tr(1)' with a
  21.    little plumbing."  See also {tee}.
  22.  
  23. :PM: /P-M/ 1. v. (from `preventive maintenance') To bring
  24.    down a machine for inspection or test purposes; see {scratch
  25.    monkey}.  2. n. Abbrev. for `Presentation Manager', an
  26.    {elephantine} OS/2 graphical user interface.  See also
  27.    {provocative maintenance}.
  28.  
  29. :pnambic: /p*-nam'bik/ [Acronym from the scene in the film
  30.    version of `The Wizard of Oz' in which the true nature of the
  31.    wizard is first discovered: "Pay no attention to the man behind
  32.    the curtain."]  1. A stage of development of a process or function
  33.    that, owing to incomplete implementation or to the complexity of
  34.    the system, requires human interaction to simulate or replace some
  35.    or all of the actions, inputs, or outputs of the process or
  36.    function.  2. Of or pertaining to a process or function whose
  37.    apparent operations are wholly or partially falsified.
  38.    3. Requiring {prestidigitization}.
  39.  
  40.    The ultimate pnambic product was "Dan Bricklin's Demo", a program
  41.    which supported flashy user-interface design prototyping.  There is
  42.    a related maxim among hackers: "Any sufficiently advanced
  43.    technology is indistinguishable from a rigged demo."  See
  44.    {magic}, sense 1, for illumination of this point.
  45.  
  46. :pod: [allegedly from abbreviation POD for `Prince Of Darkness'] n. A
  47.    Diablo 630 (or, latterly, any letter-quality impact printer).  From
  48.    the DEC-10 PODTYPE program used to feed formatted text to it.
  49.  
  50. :point-and-drool interface: n. Parody of the techspeak term
  51.    `point-and-shoot interface', describing a windows, icons, and
  52.    mice-based interface such as is found on the Macintosh.  The
  53.    implication, of course, is that such an interface is only suitable
  54.    for idiots.  See {for the rest of us}, {WIMP environment},
  55.    {Macintrash}, {drool-proof paper}.  Also `point-and-grunt
  56.    interface'.
  57.  
  58. :poke: n.,vt. See {peek}.
  59.  
  60. :poll: v.,n. 1. [techspeak] The action of checking the status of an
  61.    input line, sensor, or memory location to see if a particular
  62.    external event has been registered.  2. To repeatedly call or check
  63.    with someone: "I keep polling him, but he's not answering his
  64.    phone; he must be swapped out."  3. To ask.  "Lunch?  I poll for
  65.    a takeout order daily."
  66.  
  67. :polygon pusher: n. A chip designer who spends most of his or her
  68.    time at the physical layout level (which requires drawing
  69.    *lots* of multi-colored polygons).  Also `rectangle
  70.    slinger'.
  71.  
  72. :POM: /P-O-M/ n. Common abbreviation for {phase of the moon}.  Usage:
  73.    usually in the phrase `POM-dependent', which means {flaky}.
  74.  
  75. :pop: [from the operation that removes the top of a stack, and the
  76.    fact that procedure return addresses are saved on the stack] (also
  77.    capitalized `POP' /pop/) 1. vt. To remove something from a
  78.    {stack} or {pdl}.  If a person says he/she has popped
  79.    something from his stack, that means he/she has finally finished
  80.    working on it and can now remove it from the list of things hanging
  81.    overhead.  2. When a discussion gets to too deep a level of detail
  82.    so that the main point of the discussion is being lost, someone
  83.    will shout "Pop!", meaning "Get back up to a higher level!"
  84.    The shout is frequently accompanied by an upthrust arm with a
  85.    finger pointing to the ceiling.
  86.  
  87. :POPJ: /pop'J/ [from a {PDP-10} return-from-subroutine
  88.    instruction] n.,v. To return from a digression.  By verb doubling,
  89.    "Popj, popj" means roughly "Now let's see, where were we?"
  90.    See {RTI}.
  91.  
  92. :post: v. To send a message to a {mailing list} or {newsgroup}.
  93.    Distinguished in context from `mail'; one might ask, for
  94.    example: "Are you going to post the patch or mail it to known
  95.    users?"
  96.  
  97. :postcardware: n. {Shareware} that borders on {freeware}, in
  98.    that the author requests only that satisfied users send a postcard
  99.    of their home town or something.  (This practice, silly as it might
  100.    seem, serves to remind users that they are otherwise getting
  101.    something for nothing, and may also be psychologically related to
  102.    real estate `sales' in which $1 changes hands just to keep the
  103.    transaction from being a gift.)
  104.  
  105. :posting: n. Noun corresp. to v. {post} (but note that
  106.    {post} can be nouned).  Distinguished from a `letter' or ordinary
  107.    {email} message by the fact that it is broadcast rather than
  108.    point-to-point.  It is not clear whether messages sent to a small
  109.    mailing list are postings or email; perhaps the best dividing line
  110.    is that if you don't know the names of all the potential
  111.    recipients, it is a posting.
  112.  
  113. :postmaster: n. The email contact and maintenance person at a site
  114.    connected to the Internet or UUCPNET.  Often, but not always, the
  115.    same as the {admin}.  The Internet standard for electronic mail
  116.    ({RFC}-822) requires each machine to have a `postmaster' address;
  117.    usually it is aliased to this person.
  118.  
  119. :PostScript:: n. A Page Description Language ({PDL}), based on
  120.    work originally done by John Gaffney at Evans and Sutherland in
  121.    1976, evolving through `JaM' (`John and Martin', Martin Newell) at
  122.    {XEROX PARC}, and finally implemented in its current form by
  123.    John Warnock et al. after he and Chuck Geschke founded Adobe
  124.    Systems Incorporated in 1982.  PostScript gets its leverage by
  125.    using a full programming language, rather than a series of
  126.    low-level escape sequences, to describe an image to be printed on a
  127.    laser printer or other output device (in this it parallels
  128.    {EMACS}, which exploited a similar insight about editing
  129.    tasks).  It is also noteworthy for implementing on-the fly
  130.    rasterization, from Bezier curve descriptions, of high-quality
  131.    fonts at low (e.g.  300 dpi) resolution (it was formerly believed
  132.    that hand-tuned bitmap fonts were required for this task).  Hackers
  133.    consider PostScript to be among the most elegant hacks of all time,
  134.    and the combination of technical merits and widespread availability
  135.    has made PostScript the language of choice for graphical
  136.    output.
  137.  
  138. :pound on: vt.  Syn. {bang on}.
  139.  
  140. :power cycle: vt. (also, `cycle power' or just `cycle') To
  141.    power off a machine and then power it on immediately, with the
  142.    intention of clearing some kind of {hung} or {gronk}ed state.
  143.    Syn. {120 reset}; see also {Big Red Switch}.  Compare
  144.    {Vulcan nerve pinch}, {bounce}, and {boot}, and see the
  145.    AI Koan in "{A Selection of AI Koans}" (in
  146.    {Appendix A}) about Tom Knight and the novice.
  147.  
  148. :power hit: n. A spike or drop-out in the electricity supplying
  149.    your machine; a power {glitch}.  These can cause crashes and
  150.    even permanent damage to your machine(s).
  151.  
  152. :PPN: /P-P-N/, /pip'n/ [from `Project-Programmer Number'] n. A
  153.    user-ID under {{TOPS-10}} and its various mutant progeny at SAIL,
  154.    BBN, CompuServe, and elsewhere.  Old-time hackers from the PDP-10
  155.    era sometimes use this to refer to user IDs on other systems as
  156.    well.
  157.  
  158. :precedence lossage: /pre's*-dens los'*j/ [C programmers] n.
  159.    Coding error in an expression due to unexpected grouping of
  160.    arithmetic or logical operators by the compiler.  Used esp. of
  161.    certain common coding errors in C due to the nonintuitively low
  162.    precedence levels of `&', `|', `^', `<<',
  163.    and `>>' (for this reason, experienced C programmers
  164.    deliberately forget the language's {baroque} precedence
  165.    hierarchy and parenthesize defensively).  Can always be avoided by
  166.    suitable use of parentheses.  {LISP} fans enjoy pointing out
  167.    that this can't happen in *their* favorite language, which
  168.    eschews precedence entirely, requiring one to use explicit
  169.    parentheses everywhere.  See {aliasing bug}, {memory leak},
  170.    {memory smash}, {smash the stack}, {fandango on core},
  171.    {overrun screw}.
  172.  
  173. :prepend: /pree`pend'/ [by analogy with `append'] vt. To
  174.    prefix.  As with `append' (but not `prefix' or `suffix' as a
  175.    verb), the direct object is always the thing being added and not
  176.    the original word (or character string, or whatever).  "If you
  177.    prepend a semicolon to the line, the translation routine will pass
  178.    it through unaltered."
  179.  
  180. :prestidigitization: /pres`t*-di`j*-ti:-zay'sh*n/ n. 1. The act
  181.    of putting something into digital notation via sleight of hand.
  182.    2. Data entry through legerdemain.
  183.  
  184. :pretty pictures: n. [scientific computation] The next step up from
  185.    {numbers}.  Interesting graphical output from a program that may
  186.    not have any sensible relationship to the system the program is
  187.    intended to model.  Good for showing to {management}.
  188.  
  189. :prettyprint: /prit'ee-print/ (alt. `pretty-print') v. 1. To
  190.    generate `pretty' human-readable output from a {hairy} internal
  191.    representation; esp. used for the process of {grind}ing (sense 2)
  192.    LISP code.  2. To format in some particularly slick and
  193.    nontrivial way.
  194.  
  195. :pretzel key: [Mac users] n. See {feature key}.
  196.  
  197. :prime time: [from TV programming] n. Normal high-usage hours on a
  198.    timesharing system; the day shift.  Avoidance of prime time is a
  199.    major reason for {night mode} hacking.
  200.  
  201. :printing discussion: [PARC] n. A protracted, low-level,
  202.    time-consuming, generally pointless discussion of something only
  203.    peripherally interesting to all.
  204.  
  205. :priority interrupt: [from the hardware term] n. Describes any
  206.    stimulus compelling enough to yank one right out of {hack mode}.
  207.    Classically used to describe being dragged away by an {SO} for
  208.    immediate sex, but may also refer to more mundane interruptions
  209.    such as a fire alarm going off in the near vicinity.  Also called
  210.    an {NMI} (non-maskable interrupt), especially in PC-land.
  211.  
  212. :profile: n. 1. A control file for a program, esp. a text file
  213.    automatically read from each user's home directory and intended to
  214.    be easily modified by the user in order to customize the program's
  215.    behavior.  Used to avoid {hardcoded} choices.  2. [techspeak] A
  216.    report on the amounts of time spent in each routine of a program,
  217.    used to find and {tune} away the {hot spot}s in it.  This sense
  218.    is often verbed.  Some profiling modes report units other than time
  219.    (such as call counts) and/or report at granularities other than
  220.    per-routine, but the idea is similar.
  221.  
  222. :proglet: /prog'let/ [UK] n. A short extempore program written
  223.    to meet an immediate, transient need.  Often written in BASIC,
  224.    rarely more than a dozen lines long, and contains no subroutines.
  225.    The largest amount of code that can be written off the top of one's
  226.    head, that does not need any editing, and that runs correctly the
  227.    first time (this amount varies significantly according to the
  228.    language one is using).  Compare {toy program}, {noddy},
  229.    {one-liner wars}.
  230.  
  231. :program: n. 1. A magic spell cast over a computer allowing it to
  232.    turn one's input into error messages.  2. An exercise in
  233.    experimental epistemology.  3. A form of art, ostensibly intended
  234.    for the instruction of computers, which is nevertheless almost
  235.    inevitably a failure if other programmers can't understand it.
  236.  
  237. :Programmer's Cheer: "Shift to the left!  Shift to the right!  Pop
  238.    up, push down!  Byte!  Byte!  Byte!"  A joke so old it has hair on
  239.    it.
  240.  
  241. :programming: n. 1. The art of debugging a blank sheet of paper (or,
  242.    in these days of on-line editing, the art of debugging an empty
  243.    file).  2. n. A pastime similar to banging one's head against a
  244.    wall, but with fewer opportunities for reward.  3. n. The most fun
  245.    you can have with your clothes on (although clothes are not
  246.    mandatory).
  247.  
  248. :programming fluid: n. 1. Coffee.  2. Cola.  3. Any caffeinacious
  249.    stimulant.  Many hackers consider these essential for those
  250.    all-night hacking runs.  See {unleaded}, {wirewater}.
  251.  
  252. :propeller head: n. Used by hackers, this is syn. with {computer
  253.    geek}.  Non-hackers sometimes use it to describe all techies.
  254.    Prob. derives from SF fandom's tradition (originally invented by
  255.    old-time fan Ray Faraday Nelson) of propeller beanies as fannish
  256.    insignia (though nobody actually wears them except as a joke).
  257.  
  258. :propeller key: [Mac users] n. See {feature key}.
  259.  
  260. :proprietary: adj. 1. In {marketroid}-speak, superior; implies a
  261.    product imbued with exclusive magic by the unmatched brilliance of
  262.    the company's hardware or software designers.  2. In the language
  263.    of hackers and users, inferior; implies a product not conforming to
  264.    open-systems standards, and thus one that puts the customer at the
  265.    mercy of a vendor able to gouge freely on service and upgrade
  266.    charges after the initial sale has locked the customer in (that's
  267.    assuming it wasn't too expensive in the first place).
  268.  
  269. :protocol: n. As used by hackers, this never refers to niceties
  270.    about the proper form for addressing letters to the Papal Nuncio or
  271.    the order in which one should use the forks in a Russian-style
  272.    place setting; hackers don't care about such things.  It is used
  273.    instead to describe any set of rules that allow different machines
  274.    or pieces of software to coordinate with each other without
  275.    ambiguity.  So, for example, it does include niceties about the
  276.    proper form for addressing packets on a network or the order in
  277.    which one should use the forks in the Dining Philosophers Problem.
  278.    It implies that there is some common message format and an accepted
  279.    set of primitives or commands that all parties involved understand,
  280.    and that transactions among them follow predictable logical
  281.    sequences.  See also {handshaking}, {do protocol}.
  282.  
  283. :provocative maintenance: [common ironic mutation of `preventive
  284.    maintenance'] n. Actions performed upon a machine at regularly
  285.    scheduled intervals to ensure that the system remains in a usable
  286.    state.  So called because it is all too often performed by a
  287.    {field servoid} who doesn't know what he is doing; this results
  288.    in the machine's remaining in an *un*usable state for an
  289.    indeterminate amount of time.  See also {scratch monkey}.
  290.  
  291. :prowler: [UNIX] n. A {daemon} that is run periodically (typically
  292.    once a week) to seek out and erase {core} files, truncate
  293.    administrative logfiles, nuke `lost+found' directories, and
  294.    otherwise clean up the {cruft} that tends to pile up in the
  295.    corners of a file system.  See also {GFR}, {reaper},
  296.    {skulker}.
  297.  
  298. :pseudo: /soo'doh/ [USENET: truncation of `pseudonym'] n. 1. An
  299.    electronic-mail or {USENET} persona adopted by a human for
  300.    amusement value or as a means of avoiding negative repercussions of
  301.    one's net.behavior; a `nom de USENET', often associated with
  302.    forged postings designed to conceal message origins.  Perhaps the
  303.    best-known and funniest hoax of this type is {BIFF}.
  304.    2. Notionally, a {flamage}-generating AI program simulating a
  305.    USENET user.  Many flamers have been accused of actually being such
  306.    entities, despite the fact that no AI program of the required
  307.    sophistication yet exists.  However, in 1989 there was a famous
  308.    series of forged postings that used a phrase-frequency-based
  309.    travesty generator to simulate the styles of several well-known
  310.    flamers; it was based on large samples of their back postings
  311.    (compare {Dissociated Press}).  A significant number of people
  312.    were fooled by the forgeries, and the debate over their
  313.    authenticity was settled only when the perpetrator came forward to
  314.    publicly admit the hoax.
  315.  
  316. :pseudoprime: n. A backgammon prime (six consecutive occupied
  317.    points) with one point missing.  This term is an esoteric pun
  318.    derived from a mathematical method that, rather than determining
  319.    precisely whether a number is prime (has no divisors), uses a
  320.    statistical technique to decide whether the number is `probably'
  321.    prime.  A number that passes this test is called a pseudoprime.
  322.    The hacker backgammon usage stems from the idea that a pseudoprime
  323.    is almost as good as a prime: it does the job of a prime until
  324.    proven otherwise, and that probably won't happen.
  325.  
  326. :pseudosuit: /soo'doh-s[y]oot`/ n. A {suit} wannabee; a hacker
  327.    who has decided that he wants to be in management or administration
  328.    and begins wearing ties, sport coats, and (shudder!) suits
  329.    voluntarily.  It's his funeral.  See also {lobotomy}.
  330.  
  331. :psychedelicware: /si:`k*-del'-ik-weir/ [UK] n. Syn.
  332.    {display hack}.  See also {smoking clover}.
  333.  
  334. :psyton: /si:'ton/ [TMRC] n. The elementary particle carrying the
  335.    sinister force.  The probability of a process losing is
  336.    proportional to the number of psytons falling on it.  Psytons are
  337.    generated by observers, which is why demos are more likely to fail
  338.    when lots of people are watching.  [This term appears to have been
  339.    largely superseded by {bogon}; see also {quantum bogodynamics}.
  340.    --- ESR]
  341.  
  342. :pubic directory: [NYU] (also `pube directory' /pyoob'
  343.    d*-rek't*-ree/) n. The `pub' (public) directory on a machine that
  344.    allows {FTP} access.  So called because it is the default
  345.    location for {SEX} (sense 1).  "I'll have the source in the
  346.    pube directory by Friday."
  347.  
  348. :puff: vt. To decompress data that has been crunched by Huffman
  349.    coding.  At least one widely distributed Huffman decoder program
  350.    was actually *named* `PUFF', but these days it is usually
  351.    packaged with the encoder.  Oppose {huff}.
  352.  
  353. :punched card:: alt. `punch card' [techspeak] n.obs. The
  354.    signature medium of computing's {Stone Age}, now obsolescent
  355.    outside of some IBM shops.  The punched card actually predated
  356.    computers considerably, originating in 1801 as a control device for
  357.    mechanical looms.  The version patented by Hollerith and used with
  358.    mechanical tabulating machines in the 1890 U.S. Census was a piece
  359.    of cardboard about 90 mm by 215 mm.  There is a widespread myth
  360.    that it was designed to fit in the currency trays used for that
  361.    era's larger dollar bills, but recent investigations have falsified
  362.    this.
  363.  
  364.    IBM (which originated as a tabulating-machine manufacturer) married
  365.    the punched card to computers, encoding binary information as
  366.    patterns of small rectangular holes; one character per column,
  367.    80 columns per card.  Other coding schemes, sizes of card, and
  368.    hole shapes were tried at various times.
  369.  
  370.    The 80-column width of most character terminals is a legacy of the
  371.    IBM punched card; so is the size of the quick-reference cards
  372.    distributed with many varieties of computers even today.  See
  373.    {chad}, {chad box}, {eighty-column mind}, {green card},
  374.    {dusty deck}, {lace card}, {card walloper}.
  375.  
  376. :punt: [from the punch line of an old joke referring to American
  377.    football: "Drop back 15 yards and punt!"] v. 1. To give up,
  378.    typically without any intention of retrying.  "Let's punt the
  379.    movie tonight."  "I was going to hack all night to get this
  380.    feature in, but I decided to punt" may mean that you've decided
  381.    not to stay up all night, and may also mean you're not ever even
  382.    going to put in the feature.  2. More specifically, to give up on
  383.    figuring out what the {Right Thing} is and resort to an
  384.    inefficient hack.  3. A design decision to defer solving a
  385.    problem, typically because one cannot define what is desirable
  386.    sufficiently well to frame an algorithmic solution.  "No way to
  387.    know what the right form to dump the graph in is --- we'll punt
  388.    that for now."  4. To hand a tricky implementation problem off
  389.    to some other section of the design.  "It's too hard to get the
  390.    compiler to do that; let's punt to the runtime system."
  391.  
  392. :Purple Book: n. 1. The `System V Interface Definition'.  The
  393.    covers of the first editions were an amazingly nauseating shade of
  394.    off-lavender.  2. Syn. {Wizard Book}.  See also {{book
  395.    titles}}.
  396.  
  397. :purple wire: [IBM] n. Wire installed by Field Engineers to work
  398.    around problems discovered during testing or debugging.  These are
  399.    called `purple wires' even when (as is frequently the case) their
  400.    actual physical color is yellow....  Compare {blue wire},
  401.    {yellow wire}, and {red wire}.
  402.  
  403. :push: [from the operation that puts the current information on a
  404.    stack, and the fact that procedure return addresses are saved on a
  405.    stack] Also PUSH /push/ or PUSHJ /push'J/ (the latter based on
  406.    the PDP-10 procedure call instruction).  1. To put something onto a
  407.    {stack} or {pdl}.  If one says that something has been pushed
  408.    onto one's stack, it means that the Damoclean list of things
  409.    hanging over ones's head has grown longer and heavier yet.  This
  410.    may also imply that one will deal with it *before* other
  411.    pending items; otherwise one might say that the thing was `added
  412.    to my queue'.  2. vi. To enter upon a digression, to save the
  413.    current discussion for later.  Antonym of {pop}; see also
  414.    {stack}, {pdl}.
  415.  
  416. = Q =
  417. =====
  418.  
  419. :quad: n. 1. Two bits; syn. for {quarter}, {crumb},
  420.    {tayste}.  2. A four-pack of anything (compare {hex}, sense 2).
  421.    3. The rectangle or box glyph used in the APL language for various
  422.    arcane purposes mostly related to I/O.  Former Ivy-Leaguers and
  423.    Oxford types are said to associate it with nostalgic memories of
  424.    dear old University.
  425.  
  426. :quadruple bucky: n., obs. 1. On an MIT {space-cadet keyboard},
  427.    use of all four of the shifting keys (control, meta, hyper, and
  428.    super) while typing a character key.  2. On a Stanford or MIT
  429.    keyboard in {raw mode}, use of four shift keys while typing a
  430.    fifth character, where the four shift keys are the control and meta
  431.    keys on *both* sides of the keyboard.  This was very difficult
  432.    to do!  One accepted technique was to press the left-control and
  433.    left-meta keys with your left hand, the right-control and
  434.    right-meta keys with your right hand, and the fifth key with your
  435.    nose.
  436.  
  437.    Quadruple-bucky combinations were very seldom used in practice,
  438.    because when one invented a new command one usually assigned it to
  439.    some character that was easier to type.  If you want to imply that
  440.    a program has ridiculously many commands or features, you can say
  441.    something like: "Oh, the command that makes it spin the tapes
  442.    while whistling Beethoven's Fifth Symphony is
  443.    quadruple-bucky-cokebottle."  See {double bucky}, {bucky
  444.    bits}, {cokebottle}.
  445.  
  446. :quantifiers:: In techspeak and jargon, the standard metric
  447.    prefixes used in the SI (Syst`eme International) conventions for
  448.    scientific measurement have dual uses.  With units of time or
  449.    things that come in powers of 10, such as money, they retain their
  450.    usual meanings of multiplication by powers of 1000 = 10^3.
  451.    But when used with bytes or other things that naturally come in
  452.    powers of 2, they usually denote multiplication by powers of
  453.    1024 = 2^(10).
  454.  
  455.    Here are the SI magnifying prefixes, along with the corresponding
  456.    binary interpretations in common use:
  457.  
  458.      prefix  decimal  binary
  459.      kilo-   1000^1   1024^1 = 2^10 = 1,024 
  460.      mega-   1000^2   1024^2 = 2^20 = 1,048,576 
  461.      giga-   1000^3   1024^3 = 2^30 = 1,073,741,824 
  462.      tera-   1000^4   1024^4 = 2^40 = 1,099,511,627,776 
  463.      peta-   1000^5   1024^5 = 2^50 = 1,125,899,906,842,624 
  464.      exa-    1000^6   1024^6 = 2^60 = 1,152,921,504,606,846,976 
  465.      zetta-  1000^7   1024^7 = 2^70 = 1,180,591,620,717,411,303,424 
  466.      yotta-  1000^8   1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176 
  467.  
  468.    Here are the SI fractional prefixes:
  469.  
  470.      *prefix  decimal     jargon usage*
  471.      milli-  1000^-1     (seldom used in jargon)
  472.      micro-  1000^-2     small or human-scale (see {micro-})
  473.      nano-   1000^-3     even smaller (see {nano-})
  474.      pico-   1000^-4     even smaller yet (see {pico-})
  475.      femto-  1000^-5     (not used in jargon---yet)
  476.      atto-   1000^-6     (not used in jargon---yet)
  477.      zepto-  1000^-7     (not used in jargon---yet)
  478.      yocto-  1000^-8     (not used in jargon---yet)
  479.  
  480.    The prefixes zetta-, yotta-, zepto-, and yocto- have been included
  481.    in these tables purely for completeness and giggle value; they were
  482.    adopted in 1990 by the `19th Conference Generale des Poids et
  483.    Mesures'.  The binary peta- and exa- loadings, though well
  484.    established, are not in jargon use either --- yet.  The prefix
  485.    milli-, denoting multiplication by 1000^(-1), has always
  486.    been rare in jargon (there is, however, a standard joke about the
  487.    `millihelen' --- notionally, the amount of beauty required to
  488.    launch one ship).  See the entries on {micro-}, {pico-}, and
  489.    {nano-} for more information on connotative jargon use of these
  490.    terms.  `Femto' and `atto' (which, interestingly, derive not
  491.    from Greek but from Danish) have not yet acquired jargon loadings,
  492.    though it is easy to predict what those will be once computing
  493.    technology enters the required realms of magnitude (however, see
  494.    {attoparsec}).
  495.  
  496.    There are, of course, some standard unit prefixes for powers of
  497.    10.  In the following table, the `prefix' column is the
  498.    international standard suffix for the appropriate power of ten; the
  499.    `binary' column lists jargon abbreviations and words for the
  500.    corresponding power of 2.  The B-suffixed forms are commonly used
  501.    for byte quantities; the words `meg' and `gig' are nouns that may
  502.    (but do not always) pluralize with `s'.
  503.  
  504.      prefix   decimal   binary       pronunciation
  505.      kilo-       k      K, KB,       /kay/
  506.      mega-       M      M, MB, meg   /meg/
  507.      giga-       G      G, GB, gig   /gig/,/jig/
  508.  
  509.    Confusingly, hackers often use K or M as though they were suffix or
  510.    numeric multipliers rather than a prefix; thus "2K dollars", "2M
  511.    of disk space".  This is also true (though less commonly) of G.
  512.  
  513.    Note that the formal SI metric prefix for 1000 is `k'; some use
  514.    this strictly, reserving `K' for multiplication by 1024 (KB is
  515.    `kilobytes').
  516.  
  517.    K, M, and G used alone refer to quantities of bytes; thus, 64G is
  518.    64 gigabytes and `a K' is a kilobyte (compare mainstream use of
  519.    `a G' as short for `a grand', that is, $1000).  Whether one
  520.    pronounces `gig' with hard or soft `g' depends on what one thinks
  521.    the proper pronunciation of `giga-' is.
  522.  
  523.    Confusing 1000 and 1024 (or other powers of 2 and 10 close in
  524.    magnitude) --- for example, describing a memory in units of
  525.    500K or 524K instead of 512K --- is a sure sign of the
  526.    {marketroid}.
  527.  
  528.    One example of this: it is common to refer to the capacity of the
  529.    3.5" {microfloppies} now ubiquitous in the PC world as `1.44 MB'
  530.    In fact, this is a completely {bogus} number.  The correct size
  531.    is 1440 KB, that is, 1440 * 1024 = 1474560 bytes.  So the `mega'
  532.    in `1.44 MB' is compounded of two `kilos', one of which is 1024
  533.    and the other of which is 1000.  The correct number of megabytes would
  534.    of course be 1440 / 1024 = 1.40625.  Alas, this fine point is probably
  535.    lost on the world forever.
  536.  
  537.    [1993 update: hacker Morgan Burke has proposed, to general
  538.    approval on USENET, the following additional prefixes:
  539.  
  540. groucho
  541.      10^-30
  542. harpo
  543.      10^-27
  544. harpi
  545.      10^27
  546. grouchi
  547.      10^30
  548.  
  549.    We observe that this would leave the prefixes zeppo-, gummo-, and
  550.    chico- available for future expansion.  Sadly, there is little
  551.    immediate prospect that Mr. Burke's eminently sensible proposal
  552.    will be ratified.]
  553.  
  554. :quantum bogodynamics: /kwon'tm boh`goh-di:-nam'iks/ n. A theory
  555.    that characterizes the universe in terms of bogon sources (such as
  556.    politicians, used-car salesmen, TV evangelists, and {suit}s in
  557.    general), bogon sinks (such as taxpayers and computers), and
  558.    bogosity potential fields.  Bogon absorption, of course, causes
  559.    human beings to behave mindlessly and machines to fail (and may
  560.    also cause both to emit secondary bogons); however, the precise
  561.    mechanics of the bogon-computron interaction are not yet understood
  562.    and remain to be elucidated.  Quantum bogodynamics is most often
  563.    invoked to explain the sharp increase in hardware and software
  564.    failures in the presence of suits; the latter emit bogons, which
  565.    the former absorb.  See {bogon}, {computron}, {suit},
  566.    {psyton}.
  567.  
  568. :quarter: n. Two bits.  This in turn comes from the `pieces of
  569.    eight' famed in pirate movies --- Spanish silver crowns that could
  570.    be broken into eight pie-slice-shaped `bits' to make change.
  571.    Early in American history the Spanish coin was considered equal to
  572.    a dollar, so each of these `bits' was considered worth
  573.    12.5 cents.  Syn.  {tayste}, {crumb}, {quad}.  Usage:
  574.    rare.  See also {nickle}, {nybble}, {{byte}}, {dynner}.
  575.  
  576. :ques: /kwes/ 1. n. The question mark character (`?', ASCII
  577.    0111111).  2. interj.  What?  Also frequently verb-doubled as
  578.    "Ques ques?"  See {wall}.
  579.  
  580. :quick-and-dirty: adj. Describes a {crock} put together under time
  581.    or user pressure.  Used esp. when you want to convey that you think
  582.    the fast way might lead to trouble further down the road.  "I can
  583.    have a quick-and-dirty fix in place tonight, but I'll have to
  584.    rewrite the whole module to solve the underlying design problem."
  585.    See also {kluge}.
  586.  
  587. :quine: [from the name of the logician Willard V. Quine, via
  588.    Douglas Hofstadter] n. A program that generates a copy of its own
  589.    source text as its complete output.  Devising the shortest possible
  590.    quine in some given programming language is a common hackish
  591.    amusement.  Here is one classic quine:
  592.  
  593.      ((lambda (x)
  594.        (list x (list (quote quote) x)))
  595.       (quote
  596.          (lambda (x)
  597.            (list x (list (quote quote) x)))))
  598.  
  599.    This one works in LISP or Scheme.  It's relatively easy to write
  600.    quines in other languages such as Postscript which readily handle
  601.    programs as data; much harder (and thus more challenging!) in
  602.    languages like C which do not.  Here is a classic C quine for ASCII
  603.    machines:
  604.  
  605.      char*f="char*f=%c%s%c;main()
  606.      {printf(f,34,f,34,10);}%c";
  607.      main(){printf(f,34,f,34,10);}
  608.  
  609.    For excruciatingly exact quinishness, remove the interior line
  610.    breaks.  Some infamous {Obfuscated C Contest} entries have been
  611.    quines that reproduced in exotic ways.
  612.  
  613. :quote chapter and verse: [by analogy with the mainstream phrase]
  614.    v. To cite a relevant excerpt from an appropriate {bible}.  "I
  615.    don't care if `rn' gets it wrong; `Followup-To: poster' is
  616.    explicitly permitted by {RFC}-1036.  I'll quote chapter and verse if
  617.    you don't believe me."
  618.  
  619. :quotient: n. See {coefficient of X}.
  620.  
  621. :quux: /kwuhks/ [Mythically, from the Latin semi-deponent verb
  622.    quuxo, quuxare, quuxandum iri; noun form variously `quux' (plural
  623.    `quuces', anglicized to `quuxes') and `quuxu' (genitive
  624.    plural is `quuxuum', for four u-letters out of seven in all,
  625.    using up all the `u' letters in Scrabble).]  1. Originally, a
  626.    {metasyntactic variable} like {foo} and {foobar}.
  627.    Invented by Guy Steele for precisely this purpose when he was young
  628.    and naive and not yet interacting with the real computing
  629.    community.  Many people invent such words; this one seems simply to
  630.    have been lucky enough to have spread a little.  In an eloquent
  631.    display of poetic justice, it has returned to the originator in the
  632.    form of a nickname.  2. interj. See {foo}; however, denotes very
  633.    little disgust, and is uttered mostly for the sake of the sound of
  634.    it.  3. Guy Steele in his persona as `The Great Quux', which is
  635.    somewhat infamous for light verse and for the `Crunchly' cartoons.
  636.    4. In some circles, quux is used as a punning opposite of `crux'.
  637.    "Ah, that's the quux of the matter!"  implies that the point is
  638.    *not* crucial (compare {tip of the ice-cube}).  5. quuxy:
  639.    adj. Of or pertaining to a quux.
  640.  
  641. :qux: /kwuhks/ The fourth of the standard {metasyntactic
  642.    variable}, after {baz} and before the quu(u...)x series.
  643.    See {foo}, {bar}, {baz}, {quux}.  This appears to be a
  644.    recent mutation from {quux}, and  many versions of the
  645.    standard series just run {foo}, {bar}, {baz}, {quux},
  646.    ....
  647.  
  648. :QWERTY: /kwer'tee/ [from the keycaps at the upper left] adj.
  649.    Pertaining to a standard English-language typewriter keyboard
  650.    (sometimes called the Sholes keyboard after its inventor), as
  651.    opposed to Dvorak or foreign-language layouts or a {space-cadet
  652.    keyboard} or APL keyboard.
  653.  
  654.    Historical note: The QWERTY layout is a fine example of a {fossil}.
  655.    It is sometimes said that it was designed to slow down the typist,
  656.    but this is wrong; it was designed to allow *faster* typing
  657.    --- under a constraint now long obsolete.  In early typewriters,
  658.    fast typing using nearby type-bars jammed the mechanism.  So Sholes
  659.    fiddled the layout to separate the letters of many common digraphs
  660.    (he did a far from perfect job, though; `th', `tr', `ed', and `er',
  661.    for example, each use two nearby keys).  Also, putting the letters
  662.    of `typewriter' on one line allowed it to be typed with particular
  663.    speed and accuracy for {demo}s.  The jamming problem was
  664.    essentially solved soon afterward by a suitable use of springs, but
  665.    the keyboard layout lives on.
  666.  
  667. = R =
  668. =====
  669.  
  670. :rabbit job: [Cambridge] n. A batch job that does little, if any,
  671.    real work, but creates one or more copies of itself, breeding like
  672.    rabbits.  Compare {wabbit}, {fork bomb}.
  673.  
  674. :rain dance: n. 1. Any ceremonial action taken to correct a hardware
  675.    problem, with the expectation that nothing will be accomplished.
  676.    This especially applies to reseating printed circuit boards,
  677.    reconnecting cables, etc.  "I can't boot up the machine.  We'll
  678.    have to wait for Greg to do his rain dance."  2. Any arcane
  679.    sequence of actions performed with computers or software in order
  680.    to achieve some goal; the term is usually restricted to rituals
  681.    that include both an {incantation} or two and physical activity
  682.    or motion.  Compare {magic}, {voodoo programming}, {black
  683.    art}.
  684.  
  685. :rainbow series: n. Any of several series of technical manuals
  686.    distinguished by cover color.  The original rainbow series was the
  687.    NCSC security manuals (see {Orange Book}, {crayola books});
  688.    the term has also been commonly applied to the PostScript reference
  689.    set (see {Red Book}, {Green Book}, {Blue Book}, {White
  690.    Book}).  Which books are meant by "`the' rainbow series"
  691.    unqualified is thus dependent on one's local technical culture.
  692.  
  693. :random: adj. 1. Unpredictable (closest to mathematical
  694.    definition); weird.  "The system's been behaving pretty
  695.    randomly."  2. Assorted; undistinguished.  "Who was at the
  696.    conference?"  "Just a bunch of random business types."
  697.    3. (pejorative) Frivolous; unproductive; undirected.  "He's just a
  698.    random loser."  4. Incoherent or inelegant; poorly chosen; not
  699.    well organized.  "The program has a random set of misfeatures."
  700.    "That's a random name for that function."  "Well, all the names
  701.    were chosen pretty randomly."  5. In no particular order, though
  702.    deterministic.  "The I/O channels are in a pool, and when a file
  703.    is opened one is chosen randomly."  6. Arbitrary.  "It generates
  704.    a random name for the scratch file."  7. Gratuitously wrong, i.e.,
  705.    poorly done and for no good apparent reason.  For example, a
  706.    program that handles file name defaulting in a particularly useless
  707.    way, or an assembler routine that could easily have been coded
  708.    using only three registers, but redundantly uses seven for values
  709.    with non-overlapping lifetimes, so that no one else can invoke it
  710.    without first saving four extra registers.  What {randomness}!
  711.    8. n. A random hacker; used particularly of high-school students
  712.    who soak up computer time and generally get in the way.  9. n.
  713.    Anyone who is not a hacker (or, sometimes, anyone not known to the
  714.    hacker speaking); the noun form of sense 2.  "I went to the talk,
  715.    but the audience was full of randoms asking bogus questions".
  716.    10. n. (occasional MIT usage) One who lives at Random Hall.  See
  717.    also {J. Random}, {some random X}.
  718.  
  719. :random numbers:: n. When one wishes to specify a large but random
  720.    number of things, and the context is inappropriate for {N}, certain
  721.    numbers are preferred by hacker tradition (that is, easily
  722.    recognized as placeholders).  These include the following:
  723.  
  724.      17
  725.           Long described at MIT as `the least random number'; see 23.
  726.      23
  727.           Sacred number of Eris, Goddess of Discord (along with 17 and
  728.           5).
  729.      42
  730.           The Answer to the Ultimate Question of Life, the Universe, and
  731.           Everything. (Note that this answer is completely fortuitous.
  732.           `:-)')
  733.      69
  734.           From the sexual act.  This one was favored in MIT's ITS
  735.           culture.
  736.      105
  737.           69 hex = 105 decimal, and 69 decimal = 105 octal.
  738.      666
  739.           The Number of the Beast.
  740.  
  741.    For further enlightenment, study the `Principia Discordia',
  742.    `{The Hitchhiker's Guide to the Galaxy}', `The Joy
  743.    of Sex', and the Christian Bible (Revelation 13:18).  See also
  744.    {Discordianism} or consult your pineal gland.  See also {for
  745.    values of}.
  746.  
  747. :randomness: n. 1. An inexplicable misfeature; gratuitous
  748.    inelegance.  2. A {hack} or {crock} that depends on a complex
  749.    combination of coincidences (or, possibly, the combination upon
  750.    which the crock depends for its accidental failure to malfunction).
  751.    "This hack can output characters 40--57 by putting the character
  752.    in the four-bit accumulator field of an XCT and then extracting
  753.    six bits --- the low 2 bits of the XCT opcode are the right
  754.    thing."  "What randomness!"  3. Of people, synonymous with
  755.    `flakiness'. The connotation is that the person so described is
  756.    behaving weirdly, incompetently, or inappropriately for reasons
  757.    which are (a) too tiresome to bother inquiring into, (b) are
  758.    probably as inscrutable as quantum phenomena anyway, and (c) are
  759.    likely to pass with time. "Maybe he has a real complaint, or maybe
  760.    it's just randomness.  See if he calls back."
  761.  
  762. :rape: vt. 1. To {screw} someone or something, violently; in
  763.    particular, to destroy a program or information irrecoverably.
  764.    Often used in describing file-system damage.  "So-and-so was
  765.    running a program that did absolute disk I/O and ended up raping
  766.    the master directory."  2. To strip a piece of hardware for parts.
  767.    3. [CMU/Pitt] To mass-copy files from an anonymous ftp site.  
  768.    "Last night I raped Simtel's dskutl directory."
  769.  
  770. :rare mode: [UNIX] adj. CBREAK mode (character-by-character with
  771.    interrupts enabled).  Distinguished from {raw mode} and {cooked
  772.    mode}; the phrase "a sort of half-cooked (rare?) mode" is used
  773.    in the V7/BSD manuals to describe the mode.  Usage: rare.
  774.  
  775. :raster blaster: n. [Cambridge] Specialized hardware for
  776.    {bitblt} operations (a {blitter}).  Allegedly inspired by
  777.    `Rasta Blasta', British slang for the sort of portable stereo
  778.    Americans call a `boom box' or `ghetto blaster'.
  779.  
  780. :raster burn: n. Eyestrain brought on by too many hours of looking at
  781.    low-res, poorly tuned, or glare-ridden monitors, esp. graphics
  782.    monitors.  See {terminal illness}.
  783.  
  784. :rat belt: n. A cable tie, esp. the sawtoothed, self-locking plastic
  785.    kind that you can remove only by cutting (as opposed to a random
  786.    twist of wire or a twist tie or one of those humongous metal clip
  787.    frobs).  Small cable ties are `mouse belts'.
  788.  
  789. :rave: [WPI] vi. 1. To persist in discussing a specific subject.
  790.    2. To speak authoritatively on a subject about which one knows
  791.    very little.  3. To complain to a person who is not in a position
  792.    to correct the difficulty.  4. To purposely annoy another person
  793.    verbally.  5. To evangelize.  See {flame}.  6. Also used to
  794.    describe a less negative form of blather, such as friendly
  795.    bullshitting.  `Rave' differs slightly from {flame} in that
  796.    `rave' implies that it is the persistence or obliviousness of the
  797.    person speaking that is annoying, while {flame} implies somewhat
  798.    more strongly that the tone is offensive as well.
  799.  
  800. :rave on!: imp. Sarcastic invitation to continue a {rave}, often by
  801.    someone who wishes the raver would get a clue but realizes this is
  802.    unlikely.
  803.  
  804. :ravs: /ravz/, also `Chinese ravs' n. Jiao-zi (steamed or
  805.    boiled) or Guo-tie (pan-fried).  A Chinese appetizer, known
  806.    variously in the plural as dumplings, pot stickers (the literal
  807.    translation of guo-tie), and (around Boston) `Peking Ravioli'.  The
  808.    term `rav' is short for `ravioli', which among hackers always
  809.    means the Chinese kind rather than the Italian kind.  Both consist
  810.    of a filling in a pasta shell, but the Chinese kind includes no
  811.    cheese, uses a thinner pasta, has a pork-vegetable filling (good
  812.    ones include Chinese chives), and is cooked differently, either by
  813.    steaming or frying.  A rav or dumpling can be cooked any way, but a
  814.    potsticker is always the fried kind (so called because it sticks to
  815.    the frying pot and has to be scraped off).  "Let's get
  816.    hot-and-sour soup and three orders of ravs."  See also
  817.    {{oriental food}}.
  818.  
  819. :raw mode: n. A mode that allows a program to transfer bits
  820.    directly to or from an I/O device (or, under {bogus} systems
  821.    that make a distinction, a disk file) without any processing,
  822.    abstraction, or interpretation by the operating system.  Compare
  823.    {rare mode}, {cooked mode}.  This is techspeak under UNIX,
  824.    jargon elsewhere.
  825.  
  826. :rc file: /R-C fi:l/ [UNIX: from the startup script
  827.    `/etc/rc', but this is commonly believed to have been named
  828.    after older scripts to `run commands'] n. Script file containing
  829.    startup instructions for an application program (or an entire
  830.    operating system), usually a text file containing commands of the
  831.    sort that might have been invoked manually once the system was
  832.    running but are to be executed automatically each time the system
  833.    starts up.  See also {dot file}.
  834.  
  835. :RE: /R-E/ n. Common spoken and written shorthand for {regexp}.
  836.  
  837. :read-only user: n. Describes a {luser} who uses computers almost
  838.    exclusively for reading USENET, bulletin boards, and/or email,
  839.    rather than writing code or purveying useful information.  See
  840.    {twink}, {terminal junkie}, {lurker}.
  841.  
  842. :README file: n. By convention, the top-level directory of a UNIX
  843.    source distribution always contains a file named `README' (or
  844.    READ.ME, or rarely ReadMe or some other variant), which is a
  845.    hacker's-eye introduction containing a pointer to more detailed
  846.    documentation, credits, miscellaneous revision history notes, etc.
  847.    In the Mac and PC worlds, software is not usually distributed in
  848.    source form and a README is more likely to contain user-oriented
  849.    material like last-minute documentation changes, error workarounds,
  850.    and restrictions.  When asked, hackers invariably relate the README
  851.    convention to the famous scene in Lewis Carroll's `Alice's
  852.    Adventures In Wonderland' in which Alice confronts magic munchies
  853.    labeled "Eat Me" and "Drink Me".
  854.  
  855. :real: adj. Not simulated.  Often used as a specific antonym to
  856.    {virtual} in any of its jargon senses.
  857.  
  858. :real estate: n. May be used for any critical resource measured in
  859.    units of area.  Most frequently used of `chip real estate', the
  860.    area available for logic on the surface of an integrated circuit
  861.    (see also {nanoacre}).  May also be used of floor space in a
  862.    {dinosaur pen}, or even space on a crowded desktop (whether
  863.    physical or electronic).
  864.  
  865. :real hack: n. A {crock}.  This is sometimes used affectionately;
  866.    see {hack}.
  867.  
  868. :real operating system: n. The sort the speaker is used to.  People
  869.    from the BSDophilic academic community are likely to issue comments
  870.    like "System V?  Why don't you use a *real* operating
  871.    system?", people from the commercial/industrial UNIX sector are
  872.    known to complain "BSD?  Why don't you use a *real*
  873.    operating system?", and people from IBM object "UNIX?  Why don't
  874.    you use a *real* operating system?"  See {holy wars},
  875.    {religious issues}, {proprietary}, {Get a real computer!}
  876.  
  877. :Real Programmer: [indirectly, from the book `Real Men Don't
  878.    Eat Quiche'] n. A particular sub-variety of hacker: one possessed
  879.    of a flippant attitude toward complexity that is arrogant even when
  880.    justified by experience.  The archetypal `Real Programmer' likes
  881.    to program on the {bare metal} and is very good at same,
  882.    remembers the binary opcodes for every machine he has ever
  883.    programmed, thinks that HLLs are sissy, and uses a debugger to edit
  884.    his code because full-screen editors are for wimps.  Real
  885.    Programmers aren't satisfied with code that hasn't been {bum}med
  886.    into a state of {tense}ness just short of rupture.  Real
  887.    Programmers never use comments or write documentation: "If it was
  888.    hard to write", says the Real Programmer, "it should be hard to
  889.    understand."  Real Programmers can make machines do things that
  890.    were never in their spec sheets; in fact, they are seldom really
  891.    happy unless doing so.  A Real Programmer's code can awe with its
  892.    fiendish brilliance, even as its crockishness appalls.  Real
  893.    Programmers live on junk food and coffee, hang line-printer art on
  894.    their walls, and terrify the crap out of other programmers ---
  895.    because someday, somebody else might have to try to understand
  896.    their code in order to change it.  Their successors generally
  897.    consider it a {Good Thing} that there aren't many Real
  898.    Programmers around any more.  For a famous (and somewhat more
  899.    positive) portrait of a Real Programmer, see "{The Story
  900.    of Mel, a Real Programmer}" in {Appendix A}.  The term itself
  901.    was popularized by a 1983 Datamation article "Real
  902.    Programmers Don't Use Pascal" by Ed Post, still circulating on
  903.    USENET and Internet in on-line form.
  904.  
  905. :Real Soon Now: [orig. from SF's fanzine community, popularized by
  906.    Jerry Pournelle's column in `BYTE'] adv. 1. Supposed to be
  907.    available (or fixed, or cheap, or whatever) real soon now according
  908.    to somebody, but the speaker is quite skeptical.  2. When one's
  909.    gods, fates, or other time commitments permit one to get to it (in
  910.    other words, don't hold your breath).  Often abbreviated RSN.
  911.  
  912. :real time: 1. [techspeak] adj. Describes an application which
  913.    requires a program to respond to stimuli within some small upper
  914.    limit of response time (typically milli- or microseconds).  Process
  915.    control at a chemical plant is the classic example.  Such
  916.    applications often require special operating systems (because
  917.    everything else must take a back seat to response time) and
  918.    speed-tuned hardware.  2. adv. In jargon, refers to doing something
  919.    while people are watching or waiting.  "I asked her how to find
  920.    the calling procedure's program counter on the stack and she came
  921.    up with an algorithm in real time."
  922.  
  923. :real user: n. 1. A commercial user.  One who is paying *real*
  924.    money for his computer usage.  2. A non-hacker.  Someone using the
  925.    system for an explicit purpose (a research project, a course, etc.)
  926.    other than pure exploration.  See {user}.  Hackers who are also
  927.    students may also be real users.  "I need this fixed so I can do a
  928.    problem set.  I'm not complaining out of randomness, but as a real
  929.    user."  See also {luser}.
  930.  
  931. :Real World: n. 1. Those institutions at which `programming' may
  932.    be used in the same sentence as `FORTRAN', `{COBOL}',
  933.    `RPG', `{IBM}', `DBASE', etc.  Places where programs do such
  934.    commercially necessary but intellectually uninspiring things as
  935.    generating payroll checks and invoices.  2. The location of
  936.    non-programmers and activities not related to programming.  3. A
  937.    bizarre dimension in which the standard dress is shirt and tie and
  938.    in which a person's working hours are defined as 9 to 5 (see
  939.    {code grinder}).  4. Anywhere outside a university.  "Poor
  940.    fellow, he's left MIT and gone into the Real World."  Used
  941.    pejoratively by those not in residence there.  In conversation,
  942.    talking of someone who has entered the Real World is not unlike
  943.    speaking of a deceased person.  It is also noteworthy that on the
  944.    campus of Cambridge University in England, there is a gaily-painted
  945.    lamp-post which bears the label `REALITY CHECKPOINT'.  It marks the
  946.    boundary between university and the Real World; check your notions
  947.    of reality before passing.  This joke is funnier because the
  948.    Cambridge `campus' is actually coextensive with the center of
  949.    Cambridge.  See also {fear and loathing}, {mundane}, and
  950.    {uninteresting}.
  951.  
  952. :reality check: n. 1. The simplest kind of test of software or
  953.    hardware; doing the equivalent of asking it what 2 + 2 is
  954.    and seeing if you get 4.  The software equivalent of a
  955.    {smoke test}.  2. The act of letting a {real user} try out
  956.    prototype software.  Compare {sanity check}.
  957.  
  958. :reaper: n. A {prowler} that {GFR}s files.  A file removed in
  959.    this way is said to have been `reaped'.
  960.  
  961. :rectangle slinger: n. See {polygon pusher}.
  962.  
  963. :recursion: n. See {recursion}.  See also {tail recursion}.
  964.  
  965. :recursive acronym:: pl.n. A hackish (and especially MIT) tradition
  966.    is to choose acronyms/abbreviations that refer humorously to
  967.    themselves or to other acronyms/abbreviations.  The classic
  968.    examples were two MIT editors called EINE ("EINE Is Not EMACS")
  969.    and ZWEI ("ZWEI Was EINE Initially").  More recently, there is a
  970.    Scheme compiler called LIAR (Liar Imitates Apply Recursively), and
  971.    {GNU} (q.v., sense 1) stands for "GNU's Not UNIX!" --- and a
  972.    company with the name CYGNUS, which expands to "Cygnus, Your GNU
  973.    Support".  See also {mung}, {EMACS}.
  974.  
  975. :Red Book: n. 1. Informal name for one of the three standard
  976.    references on {{PostScript}} (`PostScript Language Reference
  977.    Manual', Adobe Systems (Addison-Wesley, 1985; QA76.73.P67P67; ISBN
  978.    0-201-10174-2, or the 1990 second edition ISBN 0-201-18127-4); the
  979.    others are known as the {Green Book}, the {Blue Book}, and
  980.    the {White Book} (sense 2).  2. Informal name for one of the 3
  981.    standard references on Smalltalk (`Smalltalk-80: The
  982.    Interactive Programming Environment' by Adele Goldberg
  983.    (Addison-Wesley, 1984; QA76.8.S635G638; ISBN 0-201-11372-4); this
  984.    too is associated with blue and green books).  3. Any of the
  985.    1984 standards issued by the CCITT eighth plenary assembly.  These
  986.    include, among other things, the X.400 email spec and the Group
  987.    1 through 4 fax standards.  4. The new version of the {Green
  988.    Book} (sense 4) --- IEEE 1003.1-1990, a.k.a ISO 9945-1 --- is
  989.    (because of the color and the fact that it is printed on A4 paper)
  990.    known in the U.S.A. as "the Ugly Red Book That Won't Fit On The
  991.    Shelf" and in Europe as "the Ugly Red Book That's A Sensible
  992.    Size".  5. The NSA `Trusted Network Interpretation' companion
  993.    to the {Orange Book}.  See also {{book titles}}.
  994.  
  995. :red wire: [IBM] n. Patch wires installed by programmers who have
  996.    no business mucking with the hardware.  It is said that the only
  997.    thing more dangerous than a hardware guy with a code patch is a
  998.    {softy} with a soldering iron.... Compare {blue wire},
  999.    {yellow wire}, {purple wire}.
  1000.  
  1001. :regexp: /reg'eksp/ [UNIX] n. (alt. `regex' or `reg-ex')
  1002.    1. Common written and spoken abbreviation for `regular
  1003.    expression', one of the wildcard patterns used, e.g., by UNIX
  1004.    utilities such as `grep(1)', `sed(1)', and `awk(1)'.
  1005.    These use conventions similar to but more elaborate than those
  1006.    described under {glob}.  For purposes of this lexicon, it is
  1007.    sufficient to note that regexps also allow complemented character
  1008.    sets using `^'; thus, one can specify `any non-alphabetic
  1009.    character' with `[^A-Za-z]'.  2. Name of a well-known PD
  1010.    regexp-handling package in portable C, written by revered USENETter
  1011.    Henry Spencer <henry@zoo.toronto.edu>.
  1012.  
  1013. :register dancing: n. Many older processor architectures suffer
  1014.    from a serious shortage of general-purpose registers.  This is
  1015.    especially a problem for compiler-writers, because their generated
  1016.    code needs places to store temporaries for things like intermediate
  1017.    values in expression evaluation.  Some designs with this problem,
  1018.    like the Intel 80x86, do have a handful of special-purpose
  1019.    registers that can be pressed into service, providing suitable care
  1020.    is taken to avoid unpleasant side effects on the state of the
  1021.    processor: while the special-purpose register is being used to hold
  1022.    an intermediate value, a delicate minuet is required in which the
  1023.    previous value of the register is saved and then restored just before
  1024.    the official function (and value) of the special-purpose register is
  1025.    again needed.
  1026.  
  1027. :reincarnation, cycle of: n. See {cycle of reincarnation}.
  1028.  
  1029. :reinvent the wheel: v. To design or implement a tool equivalent to
  1030.    an existing one or part of one, with the implication that doing so
  1031.    is silly or a waste of time.  This is often a valid criticism.
  1032.    On the other hand, automobiles don't use wooden rollers, and some
  1033.    kinds of wheel have to be reinvented many times before you get them
  1034.    right.  On the third hand, people reinventing the wheel do tend to
  1035.    come up with the moral equivalent of a trapezoid with an offset
  1036.    axle.
  1037.  
  1038. :religion of CHI: n. /ki:/ [Case Western Reserve University] n.
  1039.    Yet another hackish parody religion (see also {Church of the
  1040.    SubGenius}, {Discordianism}).  In the mid-70s, the canonical
  1041.    "Introduction to Programming" courses at CWRU were taught in
  1042.    Algol, and student exercises were punched on cards and run on a
  1043.    Univac 1108 system using a homebrew operating system named CHI.
  1044.    The religion had no doctrines and but one ritual: whenever the
  1045.    worshipper noted that a digital clock read 11:08, he or she would
  1046.    recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN, ARCCOS,
  1047.    ARCTAN."  The last five words were the first five functions in the
  1048.    appropriate chapter of the Algol manual; note the special
  1049.    pronunciations /obz/ and /ark'sin/ rather than the more common
  1050.    /abz/ and /ark'si:n/.  Using an alarm clock to warn of 11:08's
  1051.    arrival was {considered harmful}.
  1052.  
  1053. :religious issues: n. Questions which seemingly cannot be raised
  1054.    without touching off {holy wars}, such as "What is the best
  1055.    operating system (or editor, language, architecture, shell, mail
  1056.    reader, news reader)?", "What about that Heinlein guy, eh?",
  1057.    "What should we add to the new Jargon File?"  See {holy wars};
  1058.    see also {theology}, {bigot}.
  1059.  
  1060.    This term is an example of {ha ha only serious}.  People
  1061.    actually develop the most amazing and religiously intense
  1062.    attachments to their tools, even when the tools are intangible.
  1063.    The most constructive thing one can do when one stumbles into the
  1064.    crossfire is mumble {Get a life!} and leave --- unless, of course,
  1065.    one's *own* unassailably rational and obviously correct
  1066.    choices are being slammed.
  1067.  
  1068. :replicator: n. Any construct that acts to produce copies of
  1069.    itself; this could be a living organism, an idea (see {meme}), a
  1070.    program (see {quine}, {worm}, {wabbit}, {fork bomb},
  1071.    and {virus}), a pattern in a cellular automaton (see {life},
  1072.    sense 1), or (speculatively) a robot or {nanobot}.  It is even
  1073.    claimed by some that {{UNIX}} and {C} are the symbiotic halves
  1074.    of an extremely successful replicator; see {UNIX conspiracy}.
  1075.  
  1076. :reply: n. See {followup}.
  1077.  
  1078. :restriction: n. A {bug} or design error that limits a program's
  1079.    capabilities, and which is sufficiently egregious that nobody can
  1080.    quite work up enough nerve to describe it as a {feature}.  Often
  1081.    used (esp. by {marketroid} types) to make it sound as though
  1082.    some crippling bogosity had been intended by the designers all
  1083.    along, or was forced upon them by arcane technical constraints of a
  1084.    nature no mere user could possibly comprehend (these claims are
  1085.    almost invariably false).
  1086.  
  1087.    Old-time hacker Joseph M. Newcomer advises that whenever choosing a
  1088.    quantifiable but arbitrary restriction, you should make it either a
  1089.    power of 2 or a power of 2 minus 1.  If you impose a limit of
  1090.    17 items in a list, everyone will know it is a random number --- on
  1091.    the other hand, a limit of 15 or 16 suggests some deep reason
  1092.    (involving 0- or 1-based indexing in binary) and you will get less
  1093.    {flamage} for it.  Limits which are round numbers in base 10 are
  1094.    always especially suspect.
  1095.  
  1096. :retcon: /ret'kon/ [short for `retroactive continuity', from
  1097.    the USENET newsgroup rec.arts.comics] 1. n. The common
  1098.    situation in pulp fiction (esp. comics or soap operas) where a
  1099.    new story `reveals' things about events in previous stories,
  1100.    usually leaving the `facts' the same (thus preserving
  1101.    continuity) while completely changing their interpretation.  For
  1102.    example, revealing that a whole season of "Dallas" was a
  1103.    dream was a retcon.  2. vt. To write such a story about a character
  1104.    or fictitious object.  "Byrne has retconned Superman's cape so
  1105.    that it is no longer unbreakable."  "Marvelman's old adventures
  1106.    were retconned into synthetic dreams."  "Swamp Thing was
  1107.    retconned from a transformed person into a sentient vegetable."
  1108.    "Darth Vader was retconned into Luke Skywalker's father in
  1109.    "The Empire Strikes Back".
  1110.  
  1111.    [This is included because it is a good example of hackish
  1112.    linguistic innovation in a field completely unrelated to computers.
  1113.    The word `retcon' will probably spread through comics fandom and
  1114.    lose its association with hackerdom within a couple of years; for
  1115.    the record, it started here. --- ESR]
  1116.  
  1117.    [1993 update: some comics fans on the net now claim that retcon was
  1118.    independently in use in comics fandom before rec.arts.comics.
  1119.    In lexicography, nothing is ever simple. --- ESR]
  1120.  
  1121. :RETI: v. Syn. {RTI}
  1122.  
  1123. :retrocomputing: /ret'-roh-k*m-pyoo'ting/ n. Refers to emulations
  1124.    of way-behind-the-state-of-the-art hardware or software, or
  1125.    implementations of never-was-state-of-the-art; esp. if such
  1126.    implementations are elaborate practical jokes and/or parodies,
  1127.    written mostly for {hack value}, of more `serious' designs.
  1128.    Perhaps the most widely distributed retrocomputing utility was the
  1129.    `pnch(6)' or `bcd(6)' program on V7 and other early UNIX
  1130.    versions, which would accept up to 80 characters of text argument
  1131.    and display the corresponding pattern in {{punched card}} code.
  1132.    Other well-known retrocomputing hacks have included the programming
  1133.    language {INTERCAL}, a {JCL}-emulating shell for UNIX, the
  1134.    card-punch-emulating editor named 029, and various elaborate PDP-11
  1135.    hardware emulators and RT-11 OS emulators written just to keep an
  1136.    old, sourceless {Zork} binary running.
  1137.  
  1138. :return from the dead: v. To regain access to the net after a long
  1139.    absence.  Compare {person of no account}.
  1140.  
  1141. :RFC: /R-F-C/ [Request For Comment] n. One of a long-es-tab-lished
  1142.    series of numbered Internet standards widely followed by commercial
  1143.    software and freeware in the Internet and UNIX communities.
  1144.    Perhaps the single most influential one has been RFC-822 (the
  1145.    Internet mail-format standard).  The RFCs are unusual in that they
  1146.    are floated by technical experts acting on their own initiative and
  1147.    reviewed by the Internet at large, rather than formally promulgated
  1148.    through an institution such as ANSI.  For this reason, they remain
  1149.    known as RFCs even once adopted.
  1150.  
  1151.    The RFC tradition of pragmatic, experience-driven, after-the-fact
  1152.    standard writing done by individuals or small working groups has
  1153.    important advantages over the more formal, committee-driven process
  1154.    typical of ANSI or ISO.  Emblematic of some of these is the
  1155.    existence of a flourishing tradition of `joke' RFCs; usually at
  1156.    least one a year is published, usually on April 1st.  Well-known
  1157.    joke RFCs have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22
  1158.    June 1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin;
  1159.    1 April 1978), and 1149 ("A Standard for the Transmission of IP
  1160.    Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April 1990).
  1161.    The first was a Lewis Carroll pastiche; the second a parody of the
  1162.    TCP-IP documentation style, and the third a deadpan skewering of
  1163.    standards-document legalese, describing protocols for transmitting
  1164.    Internet data packets by carrier pigeon.
  1165.  
  1166.    The RFCs are most remarkable for how well they work --- they manage to
  1167.    have neither the ambiguities that are usually rife in informal
  1168.    specifications, nor the committee-perpetrated misfeatures that often
  1169.    haunt formal standards, and they define a network that has grown to
  1170.    truly worldwide proportions.
  1171.  
  1172. :RFE: /R-F-E/ n. 1. [techspeak] Request For Enhancement (compare
  1173.    {RFC}).  2. [from `Radio Free Europe', Bellcore and Sun] Radio
  1174.    Free Ethernet, a system (originated by Peter Langston) for
  1175.    broadcasting audio among Sun SPARCstations over the
  1176.    ethernet.
  1177.  
  1178. :rib site: [by analogy with {backbone site}] n. A machine that
  1179.    has an on-demand high-speed link to a {backbone site} and serves
  1180.    as a regional distribution point for lots of third-party traffic in
  1181.    email and USENET news.  Compare {leaf site}, {backbone site}.
  1182.  
  1183. :rice box: [from ham radio slang] n. Any Asian-made commodity
  1184.    computer, esp. an 80x86-based machine built to IBM PC-compatible
  1185.    ISA or EISA-bus standards.
  1186.  
  1187. :Right Thing: n. That which is *compellingly* the correct or
  1188.    appropriate thing to use, do, say, etc.  Often capitalized, always
  1189.    emphasized in speech as though capitalized.  Use of this term often
  1190.    implies that in fact reasonable people may disagree.  "What's the
  1191.    right thing for LISP to do when it sees `(mod a 0)'?  Should
  1192.    it return `a', or give a divide-by-0 error?"  Oppose
  1193.    {Wrong Thing}.
  1194.  
  1195. :RL: // [MUD community] n. Real Life.  "Firiss laughs in RL"
  1196.    means that Firiss's player is laughing.  Oppose {VR}.
  1197.  
  1198. :roach: [Bell Labs] vt. To destroy, esp. of a data structure.  Hardware
  1199.    gets {toast}ed or {fried}, software gets roached.
  1200.  
  1201. :robot: [IRC, MUD] n. An {IRC} or {MUD} user who is actually
  1202.    a program.  On IRC, typically the robot provides some useful
  1203.    service.  Examples are NickServ, which tries to prevent random
  1204.    users from adopting {nick}s already claimed by others, and
  1205.    MsgServ, which allows one to send asynchronous messages to be
  1206.    delivered when the recipient signs on.  Also common are
  1207.    "annoybots", such as KissServ, which perform no useful function
  1208.    except to send cute messages to other people.  Service robots are
  1209.    less common on MUDs; but some others, such as the `Julia' robot
  1210.    active in 1990--91, have been remarkably impressive Turing-test
  1211.    experiments, able to pass as human for as long as ten or fifteen
  1212.    minutes of conversation.
  1213.  
  1214. :robust: adj. Said of a system that has demonstrated an ability to
  1215.    recover gracefully from the whole range of exceptional inputs and
  1216.    situations in a given environment.  One step below {bulletproof}.
  1217.    Carries the additional connotation of elegance in addition to just
  1218.    careful attention to detail.  Compare {smart}, oppose
  1219.    {brittle}.
  1220.  
  1221. :rococo: adj. {Baroque} in the extreme.  Used to imply that a
  1222.    program has become so encrusted with the software equivalent of
  1223.    gold leaf and curlicues that they have completely swamped the
  1224.    underlying design.  Called after the later and more extreme forms
  1225.    of Baroque architecture and decoration prevalent during the
  1226.    mid-1700s in Europe.  Alan Perlis said: "Every program eventually
  1227.    becomes rococo, and then rubble."  Compare {critical
  1228.    mass}.
  1229.  
  1230. :rogue: [UNIX] n. A Dungeons-and-Dragons-like game using character
  1231.    graphics, written under BSD UNIX and subsequently ported to other
  1232.    UNIX systems.  The original BSD `curses(3)' screen-handling
  1233.    package was hacked together by Ken Arnold to support
  1234.    `rogue(6)' and has since become one of UNIX's most important
  1235.    and heavily used application libraries.  Nethack, Omega, Larn, and
  1236.    an entire subgenre of computer dungeon games all took off from the
  1237.    inspiration provided by `rogue(6)'.  See {nethack}.
  1238.  
  1239. :room-temperature IQ: [IBM] quant. 80 or below.  Used in describing the
  1240.    expected intelligence range of the {luser}.  "Well, but
  1241.    how's this interface going to play with the room-temperature IQ
  1242.    crowd?"  See {drool-proof paper}.  This is a much more insulting
  1243.    phrase in countries that use Celsius thermometers.
  1244.  
  1245. :root: [UNIX] n. 1. The {superuser} account that ignores
  1246.    permission bits, user number 0 on a UNIX system.  This account
  1247.    has the user name `root'.  The term {avatar} is also used.
  1248.    2. The top node of the system directory structure (home directory
  1249.    of the root user).  3. By extension, the privileged
  1250.    system-maintenance login on any OS.  See {root mode}, {go root}.
  1251.  
  1252. :root mode: n. Syn. with {wizard mode} or `wheel mode'.  Like
  1253.    these, it is often generalized to describe privileged states in
  1254.    systems other than OSes.
  1255.  
  1256. :rot13: /rot ther'teen/ [USENET: from `rotate alphabet
  1257.    13 places'] n., v. The simple Caesar-cypher encryption that
  1258.    replaces each English letter with the one 13 places forward or back
  1259.    along the alphabet, so that "The butler did it!" becomes "Gur
  1260.    ohgyre qvq vg!"  Most USENET news reading and posting programs
  1261.    include a rot13 feature.  It is used to enclose the text in a
  1262.    sealed wrapper that the reader must choose to open --- e.g., for
  1263.    posting things that might offend some readers, or answers to
  1264.    puzzles.  A major advantage of rot13 over rot(N) for
  1265.    other N is that it is self-inverse, so the same code can be
  1266.    used for encoding and decoding.
  1267.  
  1268. :rotary debugger: [Commodore] n. Essential equipment for those
  1269.    late-night or early-morning debugging sessions.  Mainly used as
  1270.    sustenance for the hacker.  Comes in many decorator colors, such as
  1271.    Sausage, Pepperoni, and Garbage.  See {pizza, ANSI standard}.
  1272.  
  1273. :round tape: n. Industry-standard 1/2-imch magnetic tape (7- or
  1274.    9-track) on traditional circular reels; oppose {square tape}.
  1275.  
  1276. :RSN: /R-S-N/ adj. See {Real Soon Now}.
  1277.  
  1278. :RTBM: /R-T-B-M/ [UNIX] imp. Commonwealth Hackish variant of
  1279.    {RTFM}; expands to `Read The Bloody Manual'.  RTBM is often the
  1280.    entire text of the first reply to a question from a {newbie};
  1281.    the *second* would escalate to "RTFM".
  1282.  
  1283. :RTFAQ: /R-T-F-A-Q/ [USENET: primarily written, by analogy with
  1284.    {RTFM}] imp. Abbrev. for `Read the FAQ!', an exhortation that
  1285.    the person addressed ought to read the newsgroup's {FAQ list}
  1286.    before posting questions.
  1287.  
  1288. :RTFB: /R-T-F-B/ [UNIX] imp. Acronym for `Read The Fucking
  1289.    Binary'.  Used when neither documentation nor the the source for the
  1290.    problem at hand exists, and the only thing to do is use some
  1291.    debugger or monitor and directly analyze the assembler or even
  1292.    the machine code.  "No source for the buggy port driver?  Aaargh! I
  1293.    *hate* proprietary operating systems.  Time to RTFB."
  1294.  
  1295. :RTFM: /R-T-F-M/ [UNIX] imp. Acronym for `Read The Fucking
  1296.    Manual'.  1. Used by {guru}s to brush off questions they
  1297.    consider trivial or annoying.  Compare {Don't do that, then!}
  1298.    2. Used when reporting a problem to indicate that you aren't just
  1299.    asking out of {randomness}.  "No, I can't figure out how to
  1300.    interface UNIX to my toaster, and yes, I have RTFM."  Unlike
  1301.    sense 1, this use is considered polite.  See also {FM},
  1302.    {RTFAQ}, {RTFB}, {RTFS}, {RTM}, all of which mutated
  1303.    from RTFM, and compare {UTSL}.
  1304.  
  1305. :RTFS: /R-T-F-S/ [UNIX] 1. imp. Acronym for `Read The Fucking
  1306.    Source'.  Stronger form of {RTFM}, used when the problem
  1307.    at hand is not necessarily obvious and not available from
  1308.    the manuals --- or the manuals are not yet written and maybe
  1309.    never will be.  For even more tricky situations, see {RTFB}.
  1310.    2. imp. `Read The Fucking Standard'; this oath can only be used when
  1311.    the problem area (e.g., a language or operating system interface) has
  1312.    actually been codified in a ratified standards document.  The
  1313.    existence of these standards documents (and the technically
  1314.    inappropriate but politically mandated compromises that they
  1315.    inevitably contain, and the stifling language in which they are
  1316.    invariably written, and the unbelievably tedious bureaucratic process
  1317.    by which they are produced) can be unnerving to hackers, who are used
  1318.    to a certain amount of ambiguity in the specifications of the systems
  1319.    they use.  (Hackers feel that such ambiguities are acceptable as long
  1320.    as the {Right Thing} to do is obvious to any thinking observer;
  1321.    sadly, this casual attitude towards specifications becomes unworkable
  1322.    when a system becomes popular in the {Real World}.)  Since a hacker
  1323.    is likely to feel that a standards document is both unnecessary and
  1324.    technically deficient, the deprecation inherent in this term may be
  1325.    directed as much against the standard as against the person who ought
  1326.    to read it.
  1327.  
  1328. :RTI: /R-T-I/ interj. The mnemonic for the `return from
  1329.    interrupt' instruction on many computers including the 6502 and
  1330.    6800.  The variant `RETI' is found among former Z80 hackers
  1331.    (almost nobody programs these things in assembler anymore).
  1332.    Equivalent to "Now, where was I?" or used to end a
  1333.    conversational digression.  See {pop}; see also {POPJ}.
  1334.  
  1335. :RTM: /R-T-M/ [USENET: abbreviation for `Read The Manual']
  1336.    1. Politer variant of {RTFM}.  2. Robert T. Morris Jr.,
  1337.    perpetrator of the great Internet worm of 1988 (see {Great Worm,
  1338.    the}); villain to many, naive hacker gone wrong to a few.  Morris
  1339.    claimed that the worm that brought the Internet to its knees was a
  1340.    benign experiment that got out of control as the result of a coding
  1341.    error.  After the storm of negative publicity that followed this
  1342.    blunder, Morris's name on ITS was hacked from RTM to {RTFM}.
  1343.  
  1344. :rude: [WPI] adj. 1. (of a program) Badly written.  2. Functionally
  1345.    poor, e.g., a program that is very difficult to use because of
  1346.    gratuitously poor (random?) design decisions.  Oppose {cuspy}.
  1347.    3. Anything that manipulates a shared resource without regard for
  1348.    its other users in such a way as to cause a (non-fatal) problem is
  1349.    said to be `rude'.  Examples: programs that change tty modes
  1350.    without resetting them on exit, or windowing programs that keep
  1351.    forcing themselves to the top of the window stack.  Compare
  1352.    {all-elbows}.
  1353.  
  1354. :runes: pl.n. 1. Anything that requires {heavy wizardry} or
  1355.    {black art} to {parse}: core dumps, JCL commands, APL, or code
  1356.    in a language you haven't a clue how to read.  Compare {casting
  1357.    the runes}, {Great Runes}.  2. Special display characters (for
  1358.    example, the high-half graphics on an IBM PC).
  1359.  
  1360. :runic: adj. Syn. {obscure}.  VMS fans sometimes refer to UNIX as
  1361.    `Runix'; UNIX fans return the compliment by expanding VMS to `Very
  1362.    Messy Syntax' or `Vachement Mauvais Syst`eme' (French; lit.
  1363.    "Cowlike Bad System", idiomatically "Bitchy Bad System").
  1364.  
  1365. :rusty iron: n. Syn. {tired iron}.  It has been claimed that this
  1366.    is the inevitable fate of {water MIPS}.
  1367.  
  1368. :rusty memory: n. Mass-storage that uses iron-oxide-based magnetic
  1369.    media (esp. tape and the pre-Winchester removable disk packs used
  1370.    in {washing machine}s).  Compare {donuts}.
  1371. = S =
  1372. =====
  1373.  
  1374. :S/N ratio: // n. (also `s/n ratio', `s:n ratio').  Syn.
  1375.    {signal-to-noise ratio}.  Often abbreviated `SNR'.
  1376.  
  1377. :sacred: adj. Reserved for the exclusive use of something (an
  1378.    extension of the standard meaning).  Often means that anyone may
  1379.    look at the sacred object, but clobbering it will screw whatever it
  1380.    is sacred to.  The comment "Register 7 is sacred to the interrupt
  1381.    handler" appearing in a program would be interpreted by a hacker
  1382.    to mean that if any *other* part of the program changes the
  1383.    contents of register 7, dire consequences are likely to ensue.
  1384.  
  1385. :saga: [WPI] n. A cuspy but bogus raving story about N random
  1386.    broken people.
  1387.  
  1388.    Here is a classic example of the saga form, as told by Guy L.
  1389.    Steele:
  1390.  
  1391.      Jon L. White (login name JONL) and I (GLS) were office mates at MIT
  1392.      for many years.  One April, we both flew from Boston to California
  1393.      for a week on research business, to consult face-to-face with some
  1394.      people at Stanford, particularly our mutual friend Richard P.
  1395.      Gabriel (RPG; see {Gabriel}).
  1396.  
  1397.      RPG picked us up at the San Francisco airport and drove us back to
  1398.      Palo Alto (going {logical} south on route 101, parallel to {El
  1399.      Camino Bignum}).  Palo Alto is adjacent to Stanford University and
  1400.      about 40 miles south of San Francisco.  We ate at The Good Earth, a
  1401.      `health food' restaurant, very popular, the sort whose milkshakes
  1402.      all contain honey and protein powder.  JONL ordered such a shake
  1403.      --- the waitress claimed the flavor of the day was "lalaberry".  I
  1404.      still have no idea what that might be, but it became a running
  1405.      joke.  It was the color of raspberry, and JONL said it tasted
  1406.      rather bitter.  I ate a better tostada there than I have ever had
  1407.      in a Mexican restaurant.
  1408.  
  1409.      After this we went to the local Uncle Gaylord's Old Fashioned Ice
  1410.      Cream Parlor.  They make ice cream fresh daily, in a variety of
  1411.      intriguing flavors.  It's a chain, and they have a slogan: "If you
  1412.      don't live near an Uncle Gaylord's --- MOVE!"  Also, Uncle Gaylord
  1413.      (a real person) wages a constant battle to force big-name ice cream
  1414.      makers to print their ingredients on the package (like air and
  1415.      plastic and other non-natural garbage).  JONL and I had first
  1416.      discovered Uncle Gaylord's the previous August, when we had flown
  1417.      to a computer-science conference in Berkeley, California, the first
  1418.      time either of us had been on the West Coast.  When not in the
  1419.      conference sessions, we had spent our time wandering the length of
  1420.      Telegraph Avenue, which (like Harvard Square in Cambridge) was
  1421.      lined with picturesque street vendors and interesting little
  1422.      shops.  On that street we discovered Uncle Gaylord's Berkeley
  1423.      store.  The ice cream there was very good.  During that August
  1424.      visit JONL went absolutely bananas (so to speak) over one
  1425.      particular flavor, ginger honey.
  1426.  
  1427.      Therefore, after eating at The Good Earth --- indeed, after every
  1428.      lunch and dinner and before bed during our April visit --- a trip
  1429.      to Uncle Gaylord's (the one in Palo Alto) was mandatory.  We had
  1430.      arrived on a Wednesday, and by Thursday evening we had been there
  1431.      at least four times.  Each time, JONL would get ginger honey ice
  1432.      cream, and proclaim to all bystanders that "Ginger was the spice
  1433.      that drove the Europeans mad!  That's why they sought a route to
  1434.      the East!  They used it to preserve their otherwise off-taste
  1435.      meat."  After the third or fourth repetition RPG and I were getting
  1436.      a little tired of this spiel, and began to paraphrase him: "Wow!
  1437.      Ginger!  The spice that makes rotten meat taste good!"  "Say!  Why
  1438.      don't we find some dog that's been run over and sat in the sun for
  1439.      a week and put some *ginger* on it for dinner?!"  "Right!  With a
  1440.      lalaberry shake!"  And so on.  This failed to faze JONL; he took it
  1441.      in good humor, as long as we kept returning to Uncle Gaylord's.  He
  1442.      loves ginger honey ice cream.
  1443.  
  1444.      Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
  1445.      (putting up with us?) in their home for our visit, so to thank them
  1446.      JONL and I took them out to a nice French restaurant of their
  1447.      choosing.  I unadventurously chose the filet mignon, and KBT had je
  1448.      ne sais quoi du jour, but RPG and JONL had lapin (rabbit).
  1449.      (Waitress: "Oui, we have fresh rabbit, fresh today."  RPG: "Well,
  1450.      JONL, I guess we won't need any *ginger*!")
  1451.  
  1452.      We finished the meal late, about 11 P.M., which is 2 A.M Boston
  1453.      time, so JONL and I were rather droopy.  But it wasn't yet
  1454.      midnight.  Off to Uncle Gaylord's!
  1455.  
  1456.      Now the French restaurant was in Redwood City, north of Palo Alto.
  1457.      In leaving Redwood City, we somehow got onto route 101 going north
  1458.      instead of south.  JONL and I wouldn't have known the difference
  1459.      had RPG not mentioned it.  We still knew very little of the local
  1460.      geography.  I did figure out, however, that we were headed in the
  1461.      direction of Berkeley, and half-jokingly suggested that we continue
  1462.      north and go to Uncle Gaylord's in Berkeley.
  1463.  
  1464.      RPG said "Fine!" and we drove on for a while and talked.  I was
  1465.      drowsy, and JONL actually dropped off to sleep for 5 minutes.  When
  1466.      he awoke, RPG said, "Gee, JONL, you must have slept all the way
  1467.      over the bridge!", referring to the one spanning San Francisco
  1468.      Bay.  Just then we came to a sign that said "University Avenue".  I
  1469.      mumbled something about working our way over to Telegraph Avenue;
  1470.      RPG said "Right!" and maneuvered some more.  Eventually we pulled
  1471.      up in front of an Uncle Gaylord's.
  1472.  
  1473.      Now, I hadn't really been paying attention because I was so sleepy,
  1474.      and I didn't really understand what was happening until RPG let me
  1475.      in on it a few moments later, but I was just alert enough to notice
  1476.      that we had somehow come to the Palo Alto Uncle Gaylord's after
  1477.      all.
  1478.  
  1479.      JONL noticed the resemblance to the Palo Alto store, but hadn't
  1480.      caught on.  (The place is lit with red and yellow lights at night,
  1481.      and looks much different from the way it does in daylight.)  He
  1482.      said, "This isn't the Uncle Gaylord's I went to in Berkeley!  It
  1483.      looked like a barn!  But this place looks *just like* the one back
  1484.      in Palo Alto!"
  1485.  
  1486.      RPG deadpanned, "Well, this is the one *I* always come to when I'm
  1487.      in Berkeley.  They've got two in San Francisco, too.  Remember,
  1488.      they're a chain."
  1489.  
  1490.      JONL accepted this bit of wisdom.  And he was not totally ignorant
  1491.      --- he knew perfectly well that University Avenue was in Berkeley,
  1492.      not far from Telegraph Avenue.  What he didn't know was that there
  1493.      is a completely different University Avenue in Palo Alto.
  1494.  
  1495.      JONL went up to the counter and asked for ginger honey.  The guy at
  1496.      the counter asked whether JONL would like to taste it first,
  1497.      evidently their standard procedure with that flavor, as not too
  1498.      many people like it.
  1499.  
  1500.      JONL said, "I'm sure I like it.  Just give me a cone."  The guy
  1501.      behind the counter insisted that JONL try just a taste first.
  1502.      "Some people think it tastes like soap."  JONL insisted, "Look, I
  1503.      *love* ginger.  I eat Chinese food.  I eat raw ginger roots.  I
  1504.      already went through this hassle with the guy back in Palo Alto.  I
  1505.      *know* I like that flavor!"
  1506.  
  1507.      At the words "back in Palo Alto" the guy behind the counter got a
  1508.      very strange look on his face, but said nothing.  KBT caught his
  1509.      eye and winked.  Through my stupor I still hadn't quite grasped
  1510.      what was going on, and thought RPG was rolling on the floor
  1511.      laughing and clutching his stomach just because JONL had launched
  1512.      into his spiel ("makes rotten meat a dish for princes") for the
  1513.      forty-third time.  At this point, RPG clued me in fully.
  1514.  
  1515.      RPG, KBT, and I retreated to a table, trying to stifle our
  1516.      chuckles.  JONL remained at the counter, talking about ice cream
  1517.      with the guy b.t.c., comparing Uncle Gaylord's to other ice cream
  1518.      shops and generally having a good old time.
  1519.  
  1520.      At length the g.b.t.c. said, "How's the ginger honey?"  JONL said,
  1521.      "Fine!  I wonder what exactly is in it?"  Now Uncle Gaylord
  1522.      publishes all his recipes and even teaches classes on how to make
  1523.      his ice cream at home.  So the g.b.t.c. got out the recipe, and he
  1524.      and JONL pored over it for a while.  But the g.b.t.c. could contain
  1525.      his curiosity no longer, and asked again, "You really like that
  1526.      stuff, huh?"  JONL said, "Yeah, I've been eating it constantly back
  1527.      in Palo Alto for the past two days.  In fact, I think this batch is
  1528.      about as good as the cones I got back in Palo Alto!"
  1529.  
  1530.      G.b.t.c. looked him straight in the eye and said, "You're *in* Palo
  1531.      Alto!"
  1532.  
  1533.      JONL turned slowly around, and saw the three of us collapse in a
  1534.      fit of giggles.  He clapped a hand to his forehead and exclaimed,
  1535.      "I've been hacked!"
  1536.  
  1537.    [My spies on the West Coast inform me that there is a close relative
  1538.    of the raspberry found out there called an `ollalieberry' --- ESR]
  1539.  
  1540.    [Ironic footnote: it appears that the {meme} about ginger vs.
  1541.    rotting meat may be an urban legend.  It's not borne out by an
  1542.    examination of medieval recipes or period purchase records for
  1543.    spices, and appears full-blown in the works of Samuel Pegge, a
  1544.    gourmand and notorious flake case who originated numerous food
  1545.    myths. --- ESR]
  1546.  
  1547. :sagan: /say'gn/ [from Carl Sagan's TV series "Cosmos";
  1548.    think "billions and billions"] n. A large quantity of anything.
  1549.    "There's a sagan different ways to tweak EMACS."  "The
  1550.    U.S. Government spends sagans on bombs and welfare --- hard to say
  1551.    which is more destructive."
  1552.  
  1553. :SAIL:: /sayl/, not /S-A-I-L/ n. 1. Stanford Artificial
  1554.    Intelligence Lab.  An important site in the early development of
  1555.    LISP; with the MIT AI Lab, BBN, CMU, XEROX PARC, and the UNIX
  1556.    community, one of the major wellsprings of technical innovation and
  1557.    hacker-culture traditions (see the {{WAITS}} entry for details).
  1558.    The SAIL machines were officially shut down in late May 1990, scant
  1559.    weeks after the MIT AI Lab's ITS cluster was officially
  1560.    decommissioned.  2. The Stanford Artificial Intelligence Language
  1561.    used at SAIL (sense 1).  It was an Algol-60 derivative with a
  1562.    coroutining facility and some new data types intended for building
  1563.    search trees and association lists.
  1564.  
  1565. :salescritter: /sayls'kri`tr/ n. Pejorative hackerism for a computer
  1566.    salesperson.  Hackers tell the following joke:
  1567.  
  1568.      Q. What's the difference between a used-car dealer and a
  1569.         computer salesman?
  1570.      A. The used-car dealer knows he's lying.  [Some versions add:
  1571.         ...and probably knows how to drive.]
  1572.  
  1573.    This reflects the widespread hacker belief that salescritters are
  1574.    self-selected for stupidity (after all, if they had brains and the
  1575.    inclination to use them, they'd be in programming).  The terms
  1576.    `salesthing' and `salesdroid' are also common.  Compare
  1577.    {marketroid}, {suit}, {droid}.
  1578.  
  1579. :salt mines: n. Dense quarters housing large numbers of programmers
  1580.    working long hours on grungy projects, with some hope of seeing the
  1581.    end of the tunnel in N years.  Noted for their absence of sunshine.
  1582.    Compare {playpen}, {sandbox}.
  1583.  
  1584. :salt substrate: [MIT] n. Collective noun used to refer to potato
  1585.    chips, pretzels, saltines, or any other form of snack food
  1586.    designed primarily as a carrier for sodium chloride.  From the
  1587.    technical term `chip substrate', used to refer to the silicon on the
  1588.    top of which the active parts of integrated circuits are deposited.
  1589.  
  1590. :same-day service: n. Ironic term used to describe long response
  1591.    time, particularly with respect to {{MS-DOS}} system calls (which
  1592.    ought to require only a tiny fraction of a second to execute).
  1593.    Such response time is a major incentive for programmers to write
  1594.    programs that are not {well-behaved}.  See also {PC-ism}.
  1595.  
  1596. :samurai: n. A hacker who hires out for legal cracking jobs,
  1597.    snooping for factions in corporate political fights, lawyers
  1598.    pursuing privacy-rights and First Amendment cases, and other
  1599.    parties with legitimate reasons to need an electronic locksmith.
  1600.    In 1991, mainstream media reported the existence of a loose-knit
  1601.    culture of samurai that meets electronically on BBS systems, mostly
  1602.    bright teenagers with personal micros; they have modeled
  1603.    themselves explicitly on the historical samurai of Japan and on the
  1604.    "net cowboys" of William Gibson's {cyberpunk} novels.  Those
  1605.    interviewed claim to adhere to a rigid ethic of loyalty to their
  1606.    employers and to disdain the vandalism and theft practiced by
  1607.    criminal crackers as beneath them and contrary to the hacker ethic;
  1608.    some quote Miyamoto Musashi's `Book of Five Rings', a classic
  1609.    of historical samurai doctrine, in support of these principles.
  1610.    See also {Stupids}, {social engineering}, {cracker},
  1611.    {hacker ethic, the}, and {dark-side hacker}.
  1612.  
  1613. :sandbender: [IBM] n. A person involved with silicon lithography and
  1614.    the physical design of chips.  Compare {ironmonger}, {polygon
  1615.    pusher}.
  1616.  
  1617. :sandbox: n. 1. (also `sandbox, the') Common term for the
  1618.    R&D department at many software and computer companies (where hackers
  1619.    in commercial environments are likely to be found).  Half-derisive,
  1620.    but reflects the truth that research is a form of creative play.
  1621.    Compare {playpen}.  2. Syn. {link farm}
  1622.  
  1623. :sanity check: n. 1. The act of checking a piece of code (or
  1624.    anything else, e.g., a USENET posting) for completely stupid mistakes.
  1625.    Implies that the check is to make sure the author was sane when it
  1626.    was written; e.g., if a piece of scientific software relied on a
  1627.    particular formula and was giving unexpected results, one might
  1628.    first look at the nesting of parentheses or the coding of the
  1629.    formula, as a `sanity check', before looking at the more complex
  1630.    I/O or data structure manipulation routines, much less the
  1631.    algorithm itself.  Compare {reality check}.  2. A run-time test,
  1632.    either validating input or ensuring that the program hasn't screwed
  1633.    up internally (producing an inconsistent value or state).
  1634.  
  1635. :Saturday-night special: [from police slang for a cheap handgun] n.
  1636.    A program or feature kluged together during off hours, under a
  1637.    deadline, and in response to pressure from a {salescritter}.
  1638.    Such hacks are dangerously unreliable, but all too often sneak into
  1639.    a production release after insufficient review.
  1640.  
  1641. :say: vt. 1. To type to a terminal.  "To list a directory
  1642.    verbosely, you have to say `ls -l'."  Tends to imply a
  1643.    {newline}-terminated command (a `sentence').  2. A computer
  1644.    may also be said to `say' things to you, even if it doesn't have
  1645.    a speech synthesizer, by displaying them on a terminal in response
  1646.    to your commands.  Hackers find it odd that this usage confuses
  1647.    {mundane}s.
  1648.  
  1649. :scag: vt. To destroy the data on a disk, either by corrupting the
  1650.   filesystem or by causing media damage.  "That last power hit scagged
  1651.   the system disk."  Compare {scrog}, {roach}.
  1652.  
  1653. :scanno: /skan'oh/ n. An error in a document caused by a scanner
  1654.    glitch, analogous to a typo or {thinko}.
  1655.  
  1656. :schroedinbug: /shroh'din-buhg/ [MIT: from the Schroedinger's Cat
  1657.    thought-experiment in quantum physics] n. A design or
  1658.    implementation bug in a program that doesn't manifest until someone
  1659.    reading source or using the program in an unusual way notices that
  1660.    it never should have worked, at which point the program promptly
  1661.    stops working for everybody until fixed.  Though (like {bit
  1662.    rot}) this sounds impossible, it happens; some programs have
  1663.    harbored latent schroedinbugs for years.  Compare {heisenbug},
  1664.    {Bohr bug}, {mandelbug}.
  1665.  
  1666. :science-fiction fandom:: n. Another voluntary subculture having a
  1667.    very heavy overlap with hackerdom; most hackers read SF and/or
  1668.    fantasy fiction avidly, and many go to `cons' (SF conventions) or
  1669.    are involved in fandom-connected activities such as the Society for
  1670.    Creative Anachronism.  Some hacker jargon originated in SF fandom;
  1671.    see {defenestration}, {great-wall}, {cyberpunk}, {h},
  1672.    {ha ha only serious}, {IMHO}, {mundane}, {neep-neep},
  1673.    {Real Soon Now}.  Additionally, the jargon terms {cowboy},
  1674.    {cyberspace}, {de-rezz}, {go flatline}, {ice},
  1675.    {phage}, {virus}, {wetware}, {wirehead}, and {worm}
  1676.    originated in SF stories.
  1677.  
  1678. :scram switch: [from the nuclear power industry] n. An
  1679.    emergency-power-off switch (see {Big Red Switch}), esp. one
  1680.    positioned to be easily hit by evacuating personnel.  In general,
  1681.    this is *not* something you {frob} lightly; these often
  1682.    initiate expensive events (such as Halon dumps) and are installed
  1683.    in a {dinosaur pen} for use in case of electrical fire or in
  1684.    case some luckless {field servoid} should put 120 volts across
  1685.    himself while {Easter egging}.  (See also {molly-guard}.)
  1686.  
  1687. :scratch: 1. [from `scratchpad'] adj. Describes a data
  1688.    structure or recording medium attached to a machine for testing or
  1689.    temporary-use purposes; one that can be {scribble}d on without
  1690.    loss.  Usually in the combining forms `scratch memory',
  1691.    `scratch register', `scratch disk', `scratch tape',
  1692.    `scratch volume'.  See {scratch monkey}.  2. [primarily
  1693.    IBM] vt. To delete (as in a file).
  1694.  
  1695. :scratch monkey: n. As in "Before testing or reconfiguring, always
  1696.    mount a {scratch monkey}", a proverb used to advise caution
  1697.    when dealing with irreplaceable data or devices.  Used to refer to
  1698.    any scratch volume hooked to a computer during any risky operation
  1699.    as a replacement for some precious resource or data that might
  1700.    otherwise get trashed.
  1701.  
  1702.    This term preserves the memory of Mabel, the Swimming Wonder
  1703.    Monkey, star of a biological research program at the University of
  1704.    Toronto.  Mabel was not (so the legend goes) your ordinary monkey;
  1705.    the university had spent years teaching her how to swim, breathing
  1706.    through a regulator, in order to study the effects of different gas
  1707.    mixtures on her physiology.  Mabel suffered an untimely demise one
  1708.    day when a DEC engineer troubleshooting a crash on the program's VAX 
  1709.    inadvertently interfered with some custom hardware that was wired
  1710.    to Mabel.
  1711.  
  1712.    It is reported that, after calming down an understandably irate
  1713.    customer sufficiently to ascertain the facts of the matter, a DEC
  1714.    troubleshooter called up the {field circus} manager responsible
  1715.    and asked him sweetly, "Can you swim?"
  1716.  
  1717.    Not all the consequences to humans were so amusing; the sysop of
  1718.    the machine in question was nearly thrown in jail at the behest of
  1719.    certain clueless droids at the local `humane' society.  The moral
  1720.    is clear: When in doubt, always mount a scratch monkey.
  1721.  
  1722.    [There is a version of this story, complete with reported dialogue
  1723.    between one of the project people and DEC field service, that has
  1724.    been circulating on Internet since 1986.  It is hilarious and
  1725.    mythic, but gets some facts wrong.  For example, it reports the
  1726.    machine as a PDP-11 and alleges that Mabel's demise occurred when
  1727.    DEC {PM}ed the machine.  Earlier versions of this entry were
  1728.    based on that story; this one has been corrected from an interview
  1729.    with the hapless sysop. --- ESR]
  1730.  
  1731. :scream and die: v. Syn. {cough and die}, but connotes that an
  1732.    error message was printed or displayed before the program crashed.
  1733.  
  1734. :screaming tty: [UNIX] n. A terminal line which is either
  1735.    disconnected or connected to a powered-off terminal which, due to
  1736.    misconfiguration, misimplementation, or simple bad luck, acts as a
  1737.    source of an infinite number of random characters.  A screaming tty
  1738.    or two can seriously degrade the performance of a vanilla UNIX
  1739.    system; the arriving "characters" are treated as userid/password
  1740.    pairs and tested as such.  The UNIX password encryption algorithm
  1741.    is designed to be computationally intensive in order to foil
  1742.    brute-force crack attacks, so though none of the logins succeeds;
  1743.    the overhead of rejecting them all can be substantial.
  1744.  
  1745. :screw: [MIT] n. A {lose}, usually in software.  Especially used for
  1746.    user-visible misbehavior caused by a bug or misfeature.  This use
  1747.    has become quite widespread outside MIT.
  1748.  
  1749. :screwage: /skroo'*j/ n. Like {lossage} but connotes that the
  1750.    failure is due to a designed-in misfeature rather than a simple
  1751.    inadequacy or a mere bug.
  1752.  
  1753. :scribble: n. To modify a data structure in a random and
  1754.    unintentionally destructive way.  "Bletch! Somebody's
  1755.    disk-compactor program went berserk and scribbled on the i-node
  1756.    table."  "It was working fine until one of the allocation routines
  1757.    scribbled on low core."  Synonymous with {trash}; compare {mung},
  1758.    which conveys a bit more intention, and {mangle}, which is more
  1759.    violent and final.
  1760.  
  1761. :scrog: /skrog/ [Bell Labs] vt. To damage, trash, or corrupt a
  1762.    data structure.  "The list header got scrogged."  Also reported
  1763.    as `skrog', and ascribed to the comic strip "The Wizard of
  1764.    Id".  Compare {scag}; possibly the two are related.  Equivalent
  1765.    to {scribble} or {mangle}.
  1766.  
  1767. :scrool: /skrool/ [from the pioneering Roundtable chat system in
  1768.    Houston ca. 1984; prob. originated as a typo for `scroll'] n. The
  1769.    log of old messages, available for later perusal or to help one get
  1770.    back in synch with the conversation. It was originally called the
  1771.    `scrool monster', because an early version of the roundtable
  1772.    software had a bug where it would dump all 8K of scrool on a user's
  1773.    terminal.
  1774.  
  1775. :scrozzle: /skroz'l/ vt. Used when a self-modifying code segment runs
  1776.    incorrectly and corrupts the running program or vital data.  "The
  1777.    damn compiler scrozzled itself again!"
  1778.  
  1779. :scruffies: n. See {neats vs. scruffies}.
  1780.  
  1781. :SCSI: [Small Computer System Interface] n. A bus-independent
  1782.    standard for system-level interfacing between a computer and
  1783.    intelligent devices.  Typically annotated in literature with `sexy'
  1784.    (/sek'see/), `sissy' (/sis'ee/), and `scuzzy' (/skuh'zee/) as
  1785.    pronunciation guides --- the last being the overwhelmingly
  1786.    predominant form, much to the dismay of the designers and their
  1787.    marketing people.  One can usually assume that a person who
  1788.    pronounces it /S-C-S-I/ is clueless.
  1789.  
  1790. :ScumOS: /skuhm'os/ or /skuhm'O-S/ n. Unflattering hackerism
  1791.    for SunOS, the UNIX variant supported on Sun Microsystems's UNIX
  1792.    workstations (see also {sun-stools}), and compare {AIDX},
  1793.    {terminak}, {Macintrash}, {Nominal Semidestructor},
  1794.    {Open DeathTrap}, {HP-SUX}.  Despite what this term might
  1795.    suggest, Sun was founded by hackers and still enjoys excellent
  1796.    relations with hackerdom; usage is more often in exasperation than
  1797.    outright loathing.
  1798.  
  1799. :search-and-destroy mode: n. Hackerism for the search-and-replace
  1800.    facility in an editor, so called because an incautiously chosen
  1801.    match pattern can cause {infinite} damage.
  1802.  
  1803. :second-system effect: n. (sometimes, more euphoniously,
  1804.    `second-system syndrome') When one is designing the successor to
  1805.    a relatively small, elegant, and successful system, there is a
  1806.    tendency to become grandiose in one's success and design an
  1807.    {elephantine} feature-laden monstrosity.  The term was first
  1808.    used by Fred Brooks in his classic `The Mythical Man-Month:
  1809.    Essays on Software Engineering' (Addison-Wesley, 1975; ISBN
  1810.    0-201-00650-2).  It described the jump from a set of nice, simple
  1811.    operating systems on the IBM 70xx series to OS/360 on the
  1812.    360 series.  A similar effect can also happen in an evolving
  1813.    system; see {Brooks's Law}, {creeping elegance}, {creeping
  1814.    featurism}.  See also {{Multics}}, {OS/2}, {X}, {software
  1815.    bloat}.
  1816.  
  1817.    This version of the jargon lexicon has been described (with
  1818.    altogether too much truth for comfort) as an example of
  1819.    second-system effect run amok on jargon-1....
  1820.  
  1821. :secondary damage: n. When a fatal error occurs (esp. a
  1822.    {segfault}) the immediate cause may be that a pointer has been
  1823.    trashed due to a previous {fandango on core}.  However, this
  1824.    fandango may have been due to an *earlier* fandango, so no
  1825.    amount of analysis will reveal (directly) how the damage occurred.
  1826.    "The data structure was clobbered, but it was secondary damage."
  1827.  
  1828.    By extension, the corruption resulting from N cascaded
  1829.    fandangoes on core is `Nth-level damage'.  There is at least
  1830.    one case on record in which 17 hours of {grovel}ling with
  1831.    `adb' actually dug up the underlying bug behind an instance of
  1832.    seventh-level damage!  The hacker who accomplished this
  1833.    near-superhuman feat was presented with an award by his fellows.
  1834.  
  1835. :security through obscurity: alt. `security by obscurity' n. A
  1836.    term applied by hackers to most OS vendors' favorite way of coping
  1837.    with security holes --- namely, ignoring them and not documenting
  1838.    them and trusting that nobody will find out about them and that
  1839.    people who do find out about them won't exploit them.  This
  1840.    "strategy" never works for long and occasionally sets the world
  1841.    up for debacles like the {RTM} worm of 1988 (see {Great Worm,
  1842.    the}), but once the brief moments of panic created by such events
  1843.    subside most vendors are all too willing to turn over and go back
  1844.    to sleep.  After all, actually fixing the bugs would siphon off the
  1845.    resources needed to implement the next user-interface frill on
  1846.    marketing's wish list --- and besides, if they started fixing
  1847.    security bugs customers might begin to *expect* it and imagine
  1848.    that their warranties of merchantability gave them some sort of
  1849.    *right* to a system with fewer holes in it than a shotgunned
  1850.    Swiss cheese, and *then* where would we be?
  1851.  
  1852.    Historical note: There are conflicting stories about the origin of
  1853.    this term.  It has been claimed that it was first used in the
  1854.    USENET newsgroup in comp.sys.apollo during a campaign to get
  1855.    HP/Apollo to fix security problems in its UNIX-{clone}
  1856.    Aegis/DomainOS (they didn't change a thing).  {ITS} fans, on the
  1857.    other hand, say it was coined years earlier in opposition to the
  1858.    incredibly paranoid {Multics} people down the hall, for whom
  1859.    security was everything.  In the ITS culture it referred to (1) the
  1860.    fact that that by the time a tourist figured out how to make
  1861.    trouble he'd generally gotten over the urge to make it, because he
  1862.    felt part of the community; and (2) (self-mockingly) the poor
  1863.    coverage of the documentation and obscurity of many commands.  One
  1864.    instance of *deliberate* security through obscurity is
  1865.    recorded; the command to allow patching the running ITS system
  1866.    ({altmode} altmode control-R) echoed as $$^D.  If you actually
  1867.    typed alt alt ^D, that set a flag that would prevent patching the
  1868.    system even if you later got it right.
  1869.  
  1870. :SED: [TMRC, from `Light-Emitting Diode'] /S-E-D/ n.
  1871.    Smoke-emitting diode.  A {friode} that lost the war. See
  1872.    {LER}.
  1873.  
  1874. :segfault: n.,vi. Syn. {segment}, {seggie}.
  1875.  
  1876. :seggie: /seg'ee/ [UNIX] n. Shorthand for {segmentation fault}
  1877.    reported from Britain.
  1878.  
  1879. :segment: /seg'ment/ vi. To experience a {segmentation fault}.
  1880.    Confusingly, this is often pronounced more like the noun `segment'
  1881.    than like mainstream v. segment; this is because it is actually a
  1882.    noun shorthand that has been verbed.
  1883.  
  1884. :segmentation fault: n. [UNIX] 1. An error in which a running program
  1885.    attempts to access memory not allocated to it and {core dump}s
  1886.    with a segmentation violation error.  2. To lose a train of
  1887.    thought or a line of reasoning.  Also uttered as an exclamation at
  1888.    the point of befuddlement.
  1889.  
  1890. :segv: /seg'vee/ n.,vi. Yet another synonym for {segmentation
  1891.    fault} (actually, in this case, `segmentation violation').
  1892.  
  1893. :self-reference: n. See {self-reference}.
  1894.  
  1895. :selvage: /sel'v*j/ [from sewing] n. See {chad} (sense 1).
  1896.  
  1897. :semi: /se'mee/ or /se'mi:/ 1. n. Abbreviation for
  1898.    `semicolon', when speaking.  "Commands to {grind} are
  1899.    prefixed by semi-semi-star" means that the prefix is `;;*',
  1900.    not 1/4 of a star.  2. A prefix used with words such as
  1901.    `immediately' as a qualifier.  "When is the system coming up?"
  1902.    "Semi-immediately." (That is, maybe not for an hour.)  "We did
  1903.    consider that possibility semi-seriously."  See also
  1904.    {infinite}.
  1905.  
  1906. :semi-infinite: n. See {infinite}.
  1907.  
  1908. :senior bit: [IBM] n. Syn. {meta bit}.
  1909.  
  1910. :server: n. A kind of {daemon} that performs a service for the
  1911.    requester and which often runs on a computer other than the one on
  1912.    which the server runs.  A particularly common term on the Internet,
  1913.    which is rife with `name servers', `domain servers', `news
  1914.    servers', `finger servers', and the like.
  1915.  
  1916. :SEX: /seks/ [Sun Users' Group & elsewhere] n. 1. Software
  1917.    EXchange.  A technique invented by the blue-green algae hundreds of
  1918.    millions of years ago to speed up their evolution, which had been
  1919.    terribly slow up until then.  Today, SEX parties are popular among
  1920.    hackers and others (of course, these are no longer limited to
  1921.    exchanges of genetic software).  In general, SEX parties are a
  1922.    {Good Thing}, but unprotected SEX can propagate a {virus}.
  1923.    See also {pubic directory}.  2. The rather Freudian mnemonic
  1924.    often used for Sign EXtend, a machine instruction found in the
  1925.    PDP-11 and many other architectures.  The RCA 1802 chip used in the
  1926.    early Elf and SuperElf personal computers had a `SEt X register'
  1927.    SEX instruction, but this seems to have had little folkloric
  1928.    impact.
  1929.  
  1930.    DEC's engineers nearly got a PDP-11 assembler that used the
  1931.    `SEX' mnemonic out the door at one time, but (for once)
  1932.    marketing wasn't asleep and forced a change.  That wasn't the last
  1933.    time this happened, either.  The author of `The Intel 8086
  1934.    Primer', who was one of the original designers of the 8086, noted
  1935.    that there was originally a `SEX' instruction on that
  1936.    processor, too.  He says that Intel management got cold feet and
  1937.    decreed that it be changed, and thus the instruction was renamed
  1938.    `CBW' and `CWD' (depending on what was being extended).
  1939.    Amusingly, the Intel 8048 (the microcontroller used in IBM PC
  1940.    keyboards) is also missing straight `SEX' but has logical-or
  1941.    and logical-and instructions `ORL' and `ANL'.
  1942.  
  1943.    The Motorola 6809, used in the U.K.'s `Dragon 32' personal
  1944.    computer, actually had an official `SEX' instruction; the 6502
  1945.    in the Apple II it competed with did not.  British hackers thought
  1946.    this made perfect mythic sense; after all, it was commonly
  1947.    observed, you could (on some theoretical level) have sex with a
  1948.    dragon, but you can't have sex with an apple.
  1949.  
  1950. :sex changer: n. Syn. {gender mender}.
  1951.  
  1952. :shambolic link: /sham-bol'ik link/ n. A UNIX symbolic link,
  1953.    particularly when it confuses you, points to nothing at all, or
  1954.    results in you ending up in some completely unexpected part of the
  1955.    filesystem....
  1956.  
  1957. :sharchive: [UNIX and USENET; from /bin/sh archive] n. A {flatten}ed
  1958.    representation of a set of one or more files, with the unique
  1959.    property that it can be unflattened (the original files restored) by
  1960.    feeding it through a standard UNIX shell; thus, a sharchive can be
  1961.    distributed to anyone running UNIX, and no special unpacking software is
  1962.    required.  Sharchives are also intriguing in that they are
  1963.    typically created by shell scripts; the script that produces
  1964.    sharchives is thus a script which produces self-unpacking scripts,
  1965.    which may themselves contain scripts.  (The downsides of sharchives
  1966.    are that they are an ideal venue for {Trojan horse} attacks and that,
  1967.    for recipients not running UNIX, no simple un-sharchiving program is
  1968.    possible; sharchives can and do make use of arbitrarily-powerful
  1969.    shell features.)
  1970.  
  1971. :Share and enjoy!: imp. 1. Commonly found at the end of software
  1972.    release announcements and {README file}s, this phrase indicates
  1973.    allegience to the hacker ethic of free information sharing (see
  1974.    {hacker ethic, the}, sense 1).  2. The motto of the Sirius
  1975.    Cybernetics Corporation (the ultimate gaggle of incompetent
  1976.    {suit}s) in Douglas Adams's `Hitch Hiker's Guide to the
  1977.    Galaxy'.  The irony of using this as a cultural recognition signal
  1978.    appeals to freeware hackers.
  1979.  
  1980. :shareware: /sheir'weir/ n. {Freeware} (sense 1) for which the
  1981.    author requests some payment, usually in the accompanying
  1982.    documentation files or in an announcement made by the software
  1983.    itself.  Such payment may or may not buy additional support or
  1984.    functionality.  See also {careware}, {charityware},
  1985.    {crippleware}, {guiltware}, {postcardware}, and
  1986.    {-ware}; compare {payware}.
  1987.  
  1988. :shelfware: /shelfweir/ n. Software purchased on a whim (by an
  1989.    individual user) or in accordance with policy (by a corporation or
  1990.    government agency), but not actually required for any particular
  1991.    use.  Therefore, it often ends up on some shelf.
  1992.  
  1993. :shell: [orig. {{Multics}} techspeak, widely propagated via UNIX] n.
  1994.    1. [techspeak] The command interpreter used to pass commands to an
  1995.    operating system; so called because it is the part of the operating
  1996.    system that interfaces with the outside world.  2. More generally,
  1997.    any interface program that mediates access to a special resource
  1998.    or {server} for convenience, efficiency, or security reasons; for
  1999.    this meaning, the usage is usually `a shell around' whatever.
  2000.    This sort of program is also called a `wrapper'.
  2001.  
  2002. :shell out: [UNIX] n. To spawn an interactive subshell from within
  2003.    a program (e.g., a mailer or editor).  "Bang foo runs foo in a
  2004.    subshell, while bang alone shells out."
  2005.  
  2006. :shift left (or right) logical: [from any of various machines'
  2007.    instruction sets] 1. vi. To move oneself to the left (right).  To
  2008.    move out of the way.  2. imper. "Get out of that (my) seat!  You
  2009.    can shift to that empty one to the left (right)."  Often
  2010.    used without the `logical', or as `left shift' instead of
  2011.    `shift left'.  Sometimes heard as LSH /lish/, from the {PDP-10}
  2012.    instruction set.  See {Programmer's Cheer}.
  2013.  
  2014. :shim: n. A small piece of data inserted in order to achieve a
  2015.    desired memory alignment or other addressing property.  For
  2016.    example, the PDP-11 UNIX linker, in split I&D (instructions and
  2017.    data) mode, inserts a two-byte shim at location 0 in data space so
  2018.    that no data object will have an address of 0 (and be confused with
  2019.    the C null pointer). See also {loose bytes}.
  2020.  
  2021. :shitogram: /shit'oh-gram/ n. A *really* nasty piece of email.
  2022.    Compare {nastygram}, {flame}.
  2023.  
  2024. :short card: n. A half-length IBM PC expansion card or adapter that
  2025.    will fit in one of the two short slots located towards the right
  2026.    rear of a standard chassis (tucked behind the floppy disk drives).
  2027.    See also {tall card}.
  2028.  
  2029. :shotgun debugging: n. The software equivalent of {Easter egging};
  2030.    the making of relatively undirected changes to software in the hope
  2031.    that a bug will be perturbed out of existence.  This almost never
  2032.    works, and usually introduces more bugs.
  2033.  
  2034. :shovelware: n. Extra software dumped onto a CD-ROM or tape to fill 
  2035.    up the remaining space on the medium after the software distribution
  2036.    it's intended to carry, but not integrated with the distribution.
  2037.  
  2038. :showstopper: n. A hardware or (especially) software bug that makes
  2039.    an implementation effectively unusable; one that absolutely has to
  2040.    be fixed before development can go on.  Opposite in connotation
  2041.    from its original theatrical use, which refers to something
  2042.    stunningly *good*.
  2043.  
  2044. :shriek: n. See {excl}.  Occasional CMU usage, also in common use
  2045.    among APL fans and mathematicians, especially category theorists.
  2046.  
  2047. :Shub-Internet: /shuhb in't*r-net/ [MUD: from H. P. Lovecraft's
  2048.    evil fictional deity `Shub-Niggurath', the Black Goat with a
  2049.    Thousand Young] n. The harsh personification of the Internet,
  2050.    Beast of a Thousand Processes, Eater of Characters, Avatar of Line
  2051.    Noise, and Imp of Call Waiting; the hideous multi-tendriled entity
  2052.    formed of all the manifold connections of the net.  A sect of
  2053.    MUDders worships Shub-Internet, sacrificing objects and praying for
  2054.    good connections.  To no avail --- its purpose is malign and evil,
  2055.    and is the cause of all network slowdown.  Often heard as in
  2056.    "Freela casts a tac nuke at Shub-Internet for slowing her down."
  2057.    (A forged response often follows along the lines of:
  2058.    "Shub-Internet gulps down the tac nuke and burps happily.")  Also
  2059.    cursed by users of {FTP} and {telnet} when the system slows
  2060.    down.  The dread name of Shub-Internet is seldom spoken aloud, as
  2061.    it is said that repeating it three times will cause the being to
  2062.    wake, deep within its lair beneath the Pentagon.
  2063.  
  2064. :sidecar: n. 1. Syn. {slap on the side}.  Esp. used of add-ons
  2065.    for the late and unlamented IBM PCjr.  2. The IBM PC compatibility
  2066.    box that could be bolted onto the side of an Amiga.  Designed and
  2067.    produced by Commodore, it broke all of the company's own design
  2068.    rules.  If it worked with any other peripherals, it was by
  2069.    {magic}.
  2070.  
  2071. :SIG: /sig/ n. (also common as a prefix in combining forms) The
  2072.    Association for Computing Machinery traditionally sponsors Special
  2073.    Interest Groups in various technical areas; well-known ones include
  2074.    SIGPLAN (the Special Interest Group on Programming Languages),
  2075.    SIGARCH (the Special Interest Group for Computer Architecture) and
  2076.    SIGGRAPH (the Special Interest Group for Computer Graphics).
  2077.    Hackers, not surprisingly, like to overextend this naming
  2078.    convention to less formal associations like SIGBEER (at ACM
  2079.    conferences) and SIGFOOD (at University of Illinois).
  2080.  
  2081. :sig block: /sig blok/ [UNIX; often written `.sig' there] n.
  2082.    Short for `signature', used specifically to refer to the
  2083.    electronic signature block that most UNIX mail- and news-posting
  2084.    software will {automagically} append to outgoing mail and news.
  2085.    The composition of one's sig can be quite an art form, including an
  2086.    ASCII logo or one's choice of witty sayings (see {sig quote},
  2087.    {fool file, the}); but many consider large sigs a waste of
  2088.    {bandwidth}, and it has been observed that the size of one's sig
  2089.    block is usually inversely proportional to one's longevity and
  2090.    level of prestige on the net.
  2091.  
  2092. :sig quote: /sig kwoht/ [USENET] n. A maxim, quote, proverb, joke,
  2093.    or slogan embedded in one's {sig block} and intended to convey
  2094.    something of one's philosophical stance, pet peeves, or sense of
  2095.    humor. "Calm down, it's only ones and zeroes."
  2096.  
  2097. :sig virus: n. A parasitic {meme} embedded in a {sig block}.
  2098.    There was a {meme plague} or fad for these on USENET in late
  2099.    1991.  Most were equivalents of "I am a .sig virus.  Please reproduce
  2100.    me in your .sig block.".  Of course, the .sig virus's memetic hook
  2101.    is the giggle value of going along with the gag; this, however,
  2102.    was a self-limiting phenomenon as more and more people picked up
  2103.    on the idea.  There were creative variants on it; some people
  2104.    stuck `sig virus antibody' texts in their sigs, and there was at
  2105.    least one instance of a sig virus eater.
  2106.  
  2107. :signal-to-noise ratio: [from analog electronics] n. Used by hackers
  2108.    in a generalization of its technical meaning.  `Signal' refers to
  2109.    useful information conveyed by some communications medium, and
  2110.    `noise' to anything else on that medium.  Hence a low ratio implies
  2111.    that it is not worth paying attention to the medium in question.
  2112.    Figures for such metaphorical ratios are never given.  The term is
  2113.    most often applied to {USENET} newsgroups during {flame war}s.
  2114.    Compare {bandwidth}.  See also {coefficient of X}, {lost in
  2115.    the noise}.
  2116.  
  2117. :silicon: n. Hardware, esp. ICs or microprocessor-based computer
  2118.    systems (compare {iron}).  Contrasted with software.  See also
  2119.    {sandbender}.
  2120.  
  2121. :silly walk: [from Monty Python's Flying Circus] vi. 1. A ridiculous
  2122.    procedure required to accomplish a task.  Like {grovel}, but more
  2123.    {random} and humorous.  "I had to silly-walk through half the
  2124.    /usr directories to find the maps file."  2. Syn. {fandango on
  2125.    core}.
  2126.  
  2127. :silo: n. The FIFO input-character buffer in an RS-232 line card.  So
  2128.    called from DEC terminology used on DH and DZ line cards for the
  2129.    VAX and PDP-11, presumably because it was a storage space for
  2130.    fungible stuff that you put in the top and took out the bottom.
  2131.  
  2132. :Silver Book: n. Jensen and Wirth's infamous `Pascal User Manual
  2133.    and Report', so called because of the silver cover of the
  2134.    widely distributed Springer-Verlag second edition of 1978 (ISBN
  2135.    0-387-90144-2).  See {{book titles}}, {Pascal}.
  2136.  
  2137. :since time T equals minus infinity: adv. A long time ago; for as
  2138.    long as anyone can remember; at the time that some particular frob
  2139.    was first designed.  Usually the word `time' is omitted.  See also
  2140.    {time T}.
  2141.  
  2142. :sitename: /si:t'naym/ [UNIX/Internet] n. The unique electronic
  2143.    name of a computer system, used to identify it in UUCP mail,
  2144.    USENET, or other forms of electronic information interchange.  The
  2145.    folklore interest of sitenames stems from the creativity and humor
  2146.    they often display.  Interpreting a sitename is not unlike
  2147.    interpreting a vanity license plate; one has to mentally unpack it,
  2148.    allowing for mono-case and length restrictions and the lack of
  2149.    whitespace.  Hacker tradition deprecates dull,
  2150.    institutional-sounding names in favor of punchy, humorous, and
  2151.    clever coinages (except that it is considered appropriate for the
  2152.    official public gateway machine of an organization to bear the
  2153.    organization's name or acronym).  Mythological references, cartoon
  2154.    characters, animal names, and allusions to SF or fantasy literature
  2155.    are probably the most popular sources for sitenames (in roughly
  2156.    descending order).  The obligatory comment when discussing these is
  2157.    Harris's Lament: "All the good ones are taken!"  See also
  2158.    {network address}.
  2159.  
  2160. :skrog: v. Syn. {scrog}.
  2161.  
  2162. :skulker: n. Syn. {prowler}.
  2163.  
  2164. :slack: n. 1. Space allocated to a disk file but not actually used
  2165.    to store useful information.  The techspeak equivalent is `internal
  2166.    fragmentation'.  2. In the theology of the {Church of the
  2167.    SubGenius}, a mystical substance or quality that is the
  2168.    prerequisite of all human happiness.
  2169.  
  2170.    Since UNIX files are stored compactly, except for the unavoidable
  2171.    wastage in the last block or fragment, it might be said that "Unix
  2172.    has no slack".  See {ha ha only serious}.
  2173.  
  2174. :slap on the side: n. (also called a {sidecar}, or abbreviated
  2175.    `SOTS'.)  A type of external expansion hardware marketed by
  2176.    computer manufacturers (e.g., Commodore for the Amiga 500/1000
  2177.    series and IBM for the hideous failure called `PCjr').  Various
  2178.    SOTS boxes provided necessities such as memory, hard drive
  2179.    controllers, and conventional expansion slots.
  2180.  
  2181. :slash: n. Common name for the slant (`/', ASCII 0101111)
  2182.    character.  See {ASCII} for other synonyms.
  2183.  
  2184. :sleep: vi. 1. [techspeak] On a timesharing system, a process that
  2185.    relinquishes its claim on the scheduler until some given event
  2186.    occurs or a specified time delay elapses is said to `go to
  2187.    sleep'.  2. In jargon, used very similarly to v. {block}; also
  2188.    in `sleep on', syn. with `block on'.  Often used to
  2189.    indicate that the speaker has relinquished a demand for resources
  2190.    until some (possibly unspecified) external event: "They can't get
  2191.    the fix I've been asking for into the next release, so I'm going to
  2192.    sleep on it until the release, then start hassling them again."
  2193.  
  2194. :slim: n. A small, derivative change (e.g., to code).
  2195.  
  2196. :slop: n. 1. A one-sided {fudge factor}, that is, an allowance for
  2197.    error but in only one of two directions.  For example, if you need
  2198.    a piece of wire 10 feet long and have to guess when you cut it,
  2199.    you make very sure to cut it too long, by a large amount if
  2200.    necessary, rather than too short by even a little bit, because you
  2201.    can always cut off the slop but you can't paste it back on again.
  2202.    When discrete quantities are involved, slop is often introduced to
  2203.    avoid the possibility of being on the losing side of a {fencepost
  2204.    error}.  2. The percentage of `extra' code generated by a compiler
  2205.    over the size of equivalent assembler code produced by
  2206.    {hand-hacking}; i.e., the space (or maybe time) you lose because
  2207.    you didn't do it yourself.  This number is often used as a measure
  2208.    of the goodness of a compiler; slop below 5% is very good, and
  2209.    10% is usually acceptable.  With modern compiler technology, esp.
  2210.    on RISC machines, the compiler's slop may actually be
  2211.    *negative*; that is, humans may be unable to generate code as
  2212.    good.  This is one of the reasons assembler programming is no
  2213.    longer common.
  2214.  
  2215. :slopsucker: /slop'suhk-r/ n. A lowest-priority task that must
  2216.    wait around until everything else has `had its fill' of machine
  2217.    resources.  Only when the machine would otherwise be idle is the
  2218.    task allowed to `suck up the slop'.  Also called a `hungry puppy'
  2219.    or `bottom feeder'.  One common variety of slopsucker hunts for
  2220.    large prime numbers.  Compare {background}.
  2221.  
  2222. :slurp: vt. To read a large data file entirely into {core} before
  2223.    working on it.  This may be contrasted with the strategy of reading
  2224.    a small piece at a time, processing it, and then reading the next
  2225.    piece.  "This program slurps in a 1K-by-1K matrix and does
  2226.    an FFT."  See also {sponge}.
  2227.  
  2228. :smart: adj. Said of a program that does the {Right Thing} in a
  2229.    wide variety of complicated circumstances.  There is a difference
  2230.    between calling a program smart and calling it intelligent; in
  2231.    particular, there do not exist any intelligent programs (yet ---
  2232.    see {AI-complete}).  Compare {robust} (smart programs can be
  2233.    {brittle}).
  2234.  
  2235. :smart terminal: n. 1. A terminal that has enough computing capability
  2236.    to render graphics or to offload some kind of front-end processing
  2237.    from the computer it talks to.  The development of workstations and
  2238.    personal computers has made this term and the product it describes
  2239.    semi-obsolescent, but one may still hear variants of the phrase
  2240.    `act like a smart terminal' used to describe the behavior of
  2241.    workstations or PCs with respect to programs that execute almost
  2242.    entirely out of a remote {server}'s storage, using said devices
  2243.    as displays.  Compare {glass tty}.  2. obs. Any terminal with an
  2244.    addressable cursor; the opposite of a {glass tty}.  Today, a
  2245.    terminal with merely an addressable cursor, but with none of the
  2246.    more-powerful features mentioned in sense 1, is called a {dumb
  2247.    terminal}.
  2248.  
  2249.    There is a classic quote from Rob Pike (inventor of the {blit}
  2250.    terminal): "A smart terminal is not a smart*ass* terminal,
  2251.    but rather a terminal you can educate."  This illustrates a common
  2252.    design problem: The attempt to make peripherals (or anything else)
  2253.    intelligent sometimes results in finicky, rigid `special
  2254.    features' that become just so much dead weight if you try to use
  2255.    the device in any way the designer didn't anticipate.  Flexibility
  2256.    and programmability, on the other hand, are *really* smart.
  2257.    Compare {hook}.
  2258.  
  2259. :smash case: vi. To lose or obliterate the uppercase/lowercase
  2260.    distinction in text input.  "MS-DOS will automatically smash case
  2261.    in the names of all the files you create."  Compare {fold case}.
  2262.  
  2263. :smash the stack: [C programming] n. On many C implementations it
  2264.    is possible to corrupt the execution stack by writing past the end
  2265.    of an array declared `auto' in a routine.  Code that does this
  2266.    is said to `smash the stack', and can cause return from the
  2267.    routine to jump to a random address.  This can produce some of the
  2268.    most insidious data-dependent bugs known to mankind.  Variants
  2269.    include `trash' the stack, {scribble} the stack, {mangle}
  2270.    the stack; the term **{mung} the stack is not used, as this is
  2271.    never done intentionally.  See {spam}; see also {aliasing
  2272.    bug}, {fandango on core}, {memory leak}, {memory smash},
  2273.    {precedence lossage}, {overrun screw}.
  2274.  
  2275. :smiley: n. See {emoticon}.
  2276.  
  2277. :smoke: 1. vi. To {crash}, blow up, usually spectacularly. "The 
  2278.    new version smoked, just like the last one."  Used for both hardware
  2279.    (where it often describes an actual physical event), and software
  2280.    (where it's merely colorful).  2. vi. [from automotive slang] To be
  2281.    conspicuously fast.  "That processor really smokes."
  2282.  
  2283. :smoke and mirrors: n. Marketing deceptions.  The term is
  2284.    mainstream in this general sense.  Among hackers it's strongly
  2285.    associated with bogus demos and crocked {benchmark}s (see also
  2286.    {MIPS}, {machoflops}).  "They claim their new box cranks 50
  2287.    MIPS for under $5000, but didn't specify the instruction mix ---
  2288.    sounds like smoke and mirrors to me."  The phrase has been said to
  2289.    derive from carnie slang for magic acts and `freak show' displays
  2290.    that depend on `trompe l'oeil' effects, but also calls to mind
  2291.    the fierce Aztec god Tezcatlipoca (lit. "Smoking Mirror") for
  2292.    whom the hearts of huge numbers of human sacrificial victims were
  2293.    regularly cut out.  Upon hearing about a rigged demo or yet another
  2294.    round of fantasy-based marketing promises, hackers often feel
  2295.    analogously disheartened.
  2296.  
  2297. :smoke test: n. 1. A rudimentary form of testing applied to
  2298.    electronic equipment following repair or reconfiguration, in which
  2299.    power is applied and the tester checks for sparks, smoke, or other
  2300.    dramatic signs of fundamental failure.  See {magic smoke}.
  2301.    2. By extension, the first run of a piece of software after
  2302.    construction or a critical change.  See and compare {reality
  2303.    check}.
  2304.  
  2305.    There is an interesting semi-parallel to this term among
  2306.    typographers and printers: When new typefaces are being punch-cut by
  2307.    hand, a `smoke test' (hold the letter in candle smoke, then press
  2308.    it onto paper) is used to check out new dies.
  2309.  
  2310. :smoking clover: [ITS] n. A {display hack} originally due to
  2311.    Bill Gosper.  Many convergent lines are drawn on a color monitor in
  2312.    {AOS} mode (so that every pixel struck has its color
  2313.    incremented).  The lines all have one endpoint in the middle of the
  2314.    screen; the other endpoints are spaced one pixel apart around the
  2315.    perimeter of a large square.  The color map is then repeatedly
  2316.    rotated.  This results in a striking, rainbow-hued, shimmering
  2317.    four-leaf clover.  Gosper joked about keeping it hidden from the
  2318.    FDA (the U.S.'s Food and Drug Administration) lest its
  2319.    hallucinogenic properties cause it to be banned.
  2320.  
  2321. :SMOP: /S-M-O-P/ [Simple (or Small) Matter of Programming] n.
  2322.    1. A piece of code, not yet written, whose anticipated length is
  2323.    significantly greater than its complexity.  Used to refer to a
  2324.    program that could obviously be written, but is not worth the
  2325.    trouble.  Also used ironically to imply that a difficult problem
  2326.    can be easily solved because a program can be written to do it; the
  2327.    irony is that it is very clear that writing such a program will be
  2328.    a great deal of work.  "It's easy to enhance a FORTRAN compiler to
  2329.    compile COBOL as well; it's just an SMOP."  2. Often used
  2330.    ironically by the intended victim when a suggestion for a program
  2331.    is made which seems easy to the suggester, but is obviously (to the
  2332.    victim) a lot of work.
  2333.  
  2334. :smurf: /smerf/ [from the soc.motss newsgroup on USENET,
  2335.    after some obnoxiously gooey cartoon characters] n. A newsgroup
  2336.    regular with a habitual style that is irreverent, silly, and
  2337.    cute.  Like many other hackish terms for people, this one may
  2338.    be praise or insult depending on who uses it.  In general, being
  2339.    referred to as a smurf is probably not going to make your day
  2340.    unless you've previously adopted the label yourself in a spirit of
  2341.    irony.  Compare {old fart}.
  2342.  
  2343. :SNAFU principle: /sna'foo prin'si-pl/ [from a WWII Army
  2344.    ac-ro-nym for `Situation Normal, All Fucked Up'] n. "True
  2345.    communication is possible only between equals, because inferiors
  2346.    are more consistently rewarded for telling their superiors pleasant
  2347.    lies than for telling the truth." --- a central tenet of
  2348.    {Discordianism}, often invoked by hackers to explain why
  2349.    authoritarian hierarchies screw up so reliably and systematically.
  2350.    The effect of the SNAFU principle is a progressive disconnection of
  2351.    decision-makers from reality.  This lightly adapted version of a
  2352.    fable dating back to the early 1960s illustrates the phenomenon
  2353.    perfectly:
  2354.  
  2355.      In the beginning was the plan,
  2356.             and then the specification;
  2357.      And the plan was without form,
  2358.             and the specification was void.
  2359.  
  2360.      And darkness
  2361.             was on the faces of the implementors thereof;
  2362.      And they spake unto their leader,
  2363.             saying:
  2364.      "It is a crock of shit,
  2365.             and smells as of a sewer."
  2366.  
  2367.      And the leader took pity on them,
  2368.             and spoke to the project leader:
  2369.      "It is a crock of excrement,
  2370.             and none may abide the odor thereof."
  2371.  
  2372.      And the project leader
  2373.             spake unto his section head, saying:
  2374.      "It is a container of excrement,
  2375.             and it is very strong, such that none may abide it."
  2376.  
  2377.      The section head then hurried to his department manager,
  2378.             and informed him thus:
  2379.      "It is a vessel of fertilizer,
  2380.             and none may abide its strength."
  2381.  
  2382.      The department manager carried these words
  2383.            to his general manager,
  2384.      and spoke unto him
  2385.            saying:
  2386.      "It containeth that which aideth the growth of plants,
  2387.            and it is very strong."
  2388.  
  2389.      And so it was that the general manager rejoiced
  2390.            and delivered the good news unto the Vice President.
  2391.      "It promoteth growth,
  2392.            and it is very powerful."
  2393.  
  2394.      The Vice President rushed to the President's side,
  2395.            and joyously exclaimed:
  2396.      "This powerful new software product
  2397.            will promote the growth of the company!"
  2398.  
  2399.      And the President looked upon the product,
  2400.            and saw that it was very good.
  2401.  
  2402.    After the subsequent disaster, the {suit}s protect themselves by
  2403.    saying "I was misinformed!", and the implementors are demoted or
  2404.    fired.
  2405.  
  2406. :snail: vt. To {snail-mail} something. "Snail me a copy of those
  2407.    graphics, will you?"
  2408.  
  2409. :snail-mail: n. Paper mail, as opposed to electronic.  Sometimes
  2410.    written as the single word `SnailMail'.  One's postal address is,
  2411.    correspondingly, a `snail address'.  Derives from earlier coinage
  2412.    `USnail' (from `U.S. Mail'), for which there have been
  2413.    parody posters and stamps made.  Oppose {email}.
  2414.  
  2415. :snap: v. To replace a pointer to a pointer with a direct pointer;
  2416.    to replace an old address with the forwarding address found there.
  2417.    If you telephone the main number for an institution and ask for a
  2418.    particular person by name, the operator may tell you that person's
  2419.    extension before connecting you, in the hopes that you will `snap
  2420.    your pointer' and dial direct next time.  The underlying metaphor
  2421.    may be that of a rubber band stretched through a number of
  2422.    intermediate points; if you remove all the thumbtacks in the
  2423.    middle, it snaps into a straight line from first to last.  See
  2424.    {chase pointers}.
  2425.  
  2426.    Often, the behavior of a {trampoline} is to perform an error
  2427.    check once and then snap the pointer that invoked it so as
  2428.    henceforth to bypass the trampoline (and its one-shot error check).
  2429.    In this context one also speaks of `snapping links'.  For
  2430.    example, in a LISP implementation, a function interface trampoline
  2431.    might check to make sure that the caller is passing the correct
  2432.    number of arguments; if it is, and if the caller and the callee are
  2433.    both compiled, then snapping the link allows that particular path
  2434.    to use a direct procedure-call instruction with no further
  2435.    overhead.
  2436.  
  2437. :snarf: /snarf/ vt. 1. To grab, esp. to grab a large document
  2438.    or file for the purpose of using it with or without the author's
  2439.    permission.  See also {BLT}.  2. [in the UNIX community] To
  2440.    fetch a file or set of files across a network.  See also
  2441.    {blast}.  This term was mainstream in the late 1960s, meaning
  2442.    `to eat piggishly'.  It may still have this connotation in
  2443.    context.  "He's in the snarfing phase of hacking --- {FTP}ing
  2444.    megs of stuff a day."  3. To acquire, with little concern for
  2445.    legal forms or politesse (but not quite by stealing).  "They
  2446.    were giving away samples, so I snarfed a bunch of them."
  2447.    4. Syn. for {slurp}.  "This program starts by snarfing the
  2448.    entire database into core, then...." 5. [GEnie] To spray
  2449.    food or {programming fluid}s due to laughing at the wrong
  2450.    moment.  "I was drinking coffee, and when I read your post I
  2451.    snarfed all over my desk." "If I keep reading this topic, I think
  2452.    I'll have to snarf-proof my computer with a keyboard {condom}."
  2453.    [This sense appears to be widespread among mundane teenagers ---
  2454.    ESR]
  2455.  
  2456. :snarf & barf: /snarf'n-barf`/ n. Under a {WIMP environment},
  2457.    the act of grabbing a region of text and then stuffing the contents
  2458.    of that region into another region (or the same one) to avoid
  2459.    retyping a command line.  In the late 1960s, this was a mainstream
  2460.    expression for an `eat now, regret it later' cheap-restaurant
  2461.    expedition.
  2462.  
  2463. :snarf down: v. To {snarf}, with the connotation of absorbing,
  2464.    processing, or understanding.  "I'll  snarf down the latest
  2465.    version of the {nethack} user's guide --- It's been a while
  2466.    since I played last and I don't know what's changed recently."
  2467.  
  2468. :snark: [Lewis Carroll, via the Michigan Terminal System] n. 1. A
  2469.    system failure.  When a user's process bombed, the operator would
  2470.    get the message "Help, Help, Snark in MTS!"  2. More generally,
  2471.    any kind of unexplained or threatening event on a computer
  2472.    (especially if it might be a boojum).  Often used to refer to an
  2473.    event or a log file entry that might indicate an attempted security
  2474.    violation.  See {snivitz}.  3. UUCP name of
  2475.    snark.thyrsus.com, home site of the Jargon File 2.*.* versions
  2476.    (i.e., this lexicon).
  2477.  
  2478. :sneakernet: /snee'ker-net/ n. Term used (generally with ironic
  2479.    intent) for transfer of electronic information by physically
  2480.    carrying tape, disks, or some other media from one machine to
  2481.    another.  "Never underestimate the bandwidth of a station wagon
  2482.    filled with magtape, or a 747 filled with CD-ROMs."  Also called
  2483.    `Tennis-Net', `Armpit-Net', `Floppy-Net' or `Shoenet'.
  2484.  
  2485. :sniff: v.,n. Synonym for {poll}.
  2486.  
  2487. :snivitz: /sniv'itz/ n. A hiccup in hardware or software; a small,
  2488.    transient problem of unknown origin (less serious than a
  2489.    {snark}).  Compare {glitch}.
  2490.  
  2491. :SO: /S-O/ n. 1. (also `S.O.') Abbrev. for Significant
  2492.    Other, almost invariably written abbreviated and pronounced
  2493.    /S-O/ by hackers.  Used to refer to one's primary
  2494.    relationship, esp. a live-in to whom one is not married.  See
  2495.    {MOTAS}, {MOTOS}, {MOTSS}.  2. The Shift Out control
  2496.    character in ASCII (Control-N, 0001110).
  2497.  
  2498. :social engineering: n. Term used among {cracker}s and
  2499.    {samurai} for cracking techniques that rely on weaknesses in
  2500.    {wetware} rather than software; the aim is to trick people into
  2501.    revealing passwords or other information that compromises a target
  2502.    system's security.  Classic scams include phoning up a mark who has
  2503.    the required information and posing as a field service tech or a
  2504.    fellow employee with an urgent access problem.  See also the
  2505.    {tiger team} story in the {patch} entry.
  2506.  
  2507. :social science number: [IBM] n. A statistic that is
  2508.    {content-free}, or nearly so.  A measure derived via methods of
  2509.    questionable validity from data of a dubious and vague nature.
  2510.    Predictively, having a social science number in hand is seldom much
  2511.    better than nothing, and can be considerably worse.  {Management}
  2512.    loves them.  See also {numbers}, {math-out}, {pretty
  2513.    pictures}.
  2514.  
  2515. :soft boot: n. See {boot}.
  2516.  
  2517. :softcopy: /soft'ko-pee/ n. [by analogy with `hardcopy'] A
  2518.    machine-readable form of corresponding hardcopy.  See {bits},
  2519.    {machinable}.
  2520.  
  2521. :software bloat: n. The results of {second-system effect} or
  2522.    {creeping featuritis}.  Commonly cited examples include
  2523.    `ls(1)', {X}, {BSD}, {Missed'em-five}, and {OS/2}.
  2524.  
  2525. :software laser: n. A laser works by bouncing photons back and
  2526.    forth between two mirrors, one totally reflective and one partially
  2527.    reflective.  If the lasing material (usually a crystal) has the
  2528.    right properties, photons scattering off the atoms in the crystal
  2529.    will excite cascades of more photons, all in lockstep.  Eventually
  2530.    the beam will escape through the partially-reflective mirror.  One
  2531.    kind of {sorcerer's apprentice mode} involving {bounce message}s
  2532.    can produce closely analogous results, with a {cascade} of
  2533.    messages escaping to flood nearby systems.  By mid-1993 there had
  2534.    been at least two publicized incidents of this kind.
  2535.  
  2536. :software rot: n. Term used to describe the tendency of software
  2537.    that has not been used in a while to {lose}; such failure may be
  2538.    semi-humorously ascribed to {bit rot}.  More commonly,
  2539.    `software rot' strikes when a program's assumptions become out
  2540.    of date.  If the design was insufficiently {robust}, this may
  2541.    cause it to fail in mysterious ways.
  2542.  
  2543.    For example, owing to endemic shortsightedness in the design of
  2544.    COBOL programs, most will succumb to software rot when their
  2545.    2-digit year counters {wrap around} at the beginning of the
  2546.    year 2000.  Actually, related lossages often afflict centenarians
  2547.    who have to deal with computer software designed by unimaginative
  2548.    clods.  One such incident became the focus of a minor public flap
  2549.    in 1990, when a gentleman born in 1889 applied for a driver's
  2550.    license renewal in Raleigh, North Carolina.  The new system
  2551.    refused to issue the card, probably because with 2-digit years the
  2552.    ages 101 and 1 cannot be distinguished.
  2553.  
  2554.    Historical note: Software rot in an even funnier sense than the
  2555.    mythical one was a real problem on early research computers (e.g.,
  2556.    the R1; see {grind crank}).  If a program that depended on a
  2557.    peculiar instruction hadn't been run in quite a while, the user
  2558.    might discover that the opcodes no longer did the same things they
  2559.    once did.  ("Hey, so-and-so needs an instruction to do
  2560.    such-and-such.  We can {snarf} this opcode, right?  No one uses
  2561.    it.")
  2562.  
  2563.    Another classic example of this sprang from the time an MIT hacker
  2564.    found a simple way to double the speed of the unconditional jump
  2565.    instruction on a PDP-6, so he patched the hardware.  Unfortunately,
  2566.    this broke some fragile timing software in a music-playing program,
  2567.    throwing its output out of tune.  This was fixed by adding a
  2568.    defensive initialization routine to compare the speed of a timing
  2569.    loop with the real-time clock; in other words, it figured out how
  2570.    fast the PDP-6 was that day, and corrected appropriately.
  2571.  
  2572.    Compare {bit rot}.
  2573.  
  2574. :softwarily: /soft-weir'i-lee/ adv. In a way pertaining to software.
  2575.    "The system is softwarily unreliable."  The adjective
  2576.    `softwary' is *not* used.  See {hardwarily}.
  2577.  
  2578. :softy: [IBM] n. Hardware hackers' term for a software expert who
  2579.    is largely ignorant of the mysteries of hardware.
  2580.  
  2581. :some random X: adj. Used to indicate a member of class X, with the
  2582.    implication that Xs are interchangeable.  "I think some random
  2583.    cracker tripped over the guest timeout last night."  See also
  2584.    {J. Random}.
  2585.  
  2586. :sorcerer's apprentice mode: [from Friedrich Schiller's `Der
  2587.    Zauberlehrling' via the film "Fantasia"] n. A bug in a
  2588.    protocol where, under some circumstances, the receipt of a message
  2589.    causes multiple messages to be sent, each of which, when received,
  2590.    triggers the same bug.  Used esp. of such behavior caused by
  2591.    {bounce message} loops in {email} software.  Compare
  2592.    {broadcast storm}, {network meltdown}, {software
  2593.    laser}, {ARMM}..
  2594.  
  2595. :SOS: n.,obs. /S-O-S/ 1. An infamously {losing} text editor.
  2596.    Once, back in the 1960s, when a text editor was needed for the
  2597.    PDP-6, a hacker crufted together a {quick-and-dirty} `stopgap
  2598.    editor' to be used until a better one was written.  Unfortunately,
  2599.    the old one was never really discarded when new ones (in
  2600.    particular, {TECO}) came along.  SOS is a descendant (`Son of
  2601.    Stopgap') of that editor, and many PDP-10 users gained the dubious
  2602.    pleasure of its acquaintance.  Since then other programs similar in
  2603.    style to SOS have been written, notably the early font editor BILOS
  2604.    /bye'lohs/, the Brother-In-Law Of Stopgap (the alternate expansion
  2605.    `Bastard Issue, Loins of Stopgap' has been proposed).  2. /sos/
  2606.    n. To decrease; inverse of {AOS}, from the PDP-10 instruction
  2607.    set.
  2608.  
  2609. :source of all good bits: n. A person from whom (or a place from
  2610.    which) useful information may be obtained.  If you need to know
  2611.    about a program, a {guru} might be the source of all good bits.
  2612.    The title is often applied to a particularly competent secretary.
  2613.  
  2614. :space-cadet keyboard: n. A now-legendary device used on MIT LISP
  2615.    machines, which inspired several still-current jargon terms and
  2616.    influenced the design of {EMACS}.  It was equipped with no
  2617.    fewer than *seven* shift keys: four keys for {bucky bits}
  2618.    (`control', `meta', `hyper', and `super') and three like
  2619.    regular shift keys, called `shift', `top', and `front'.  Many
  2620.    keys had three symbols on them: a letter and a symbol on the top,
  2621.    and a Greek letter on the front.  For example, the `L' key had an
  2622.    `L' and a two-way arrow on the top, and the Greek letter lambda on
  2623.    the front.  By pressing this key with the right hand while playing
  2624.    an appropriate `chord' with the left hand on the shift keys, you
  2625.    can get the following results:
  2626.  
  2627.      L               
  2628.           lowercase l
  2629.  
  2630.      shift-L         
  2631.           uppercase L
  2632.  
  2633.      front-L         
  2634.           lowercase lambda
  2635.  
  2636.      front-shift-L   
  2637.           uppercase lambda
  2638.  
  2639.      top-L           
  2640.           two-way arrow
  2641.           (front and shift are ignored)
  2642.  
  2643.    And of course each of these might also be typed with any
  2644.    combination of the control, meta, hyper, and super keys.  On this
  2645.    keyboard, you could type over 8000 different characters!  This
  2646.    allowed the user to type very complicated mathematical text, and
  2647.    also to have thousands of single-character commands at his
  2648.    disposal.  Many hackers were actually willing to memorize the
  2649.    command meanings of that many characters if it reduced typing time
  2650.    (this attitude obviously shaped the interface of EMACS).  Other
  2651.    hackers, however, thought having that many bucky bits was overkill,
  2652.    and objected that such a keyboard can require three or four hands
  2653.    to operate.  See {bucky bits}, {cokebottle}, {double bucky},
  2654.    {meta bit}, {quadruple bucky}.
  2655.  
  2656.    Note: early versions of this entry incorrectly identified the
  2657.    space-cadet keyboard with the `Knight keyboard'.  Though both
  2658.    were designed by Tom Knight, the latter term was properly applied
  2659.    only to a keyboard used for ITS on the PDP-10 and modeled 
  2660.    on the Stanford keyboard (as described under {bucky bits}).  The
  2661.    true space-cadet keyboard evolved from the Knight keyboard.
  2662.  
  2663. :SPACEWAR: n. A space-combat simulation game, inspired by
  2664.    E. E. "Doc" Smith's "Lensman" books, in which two spaceships
  2665.    duel around a central sun, shooting torpedoes at each other and
  2666.    jumping through hyperspace.  This game was first implemented on the
  2667.    PDP-1 at MIT in 1960--61.  SPACEWAR aficionados formed the core of
  2668.    the early hacker culture at MIT.  Nine years later, a descendant
  2669.    of the game motivated Ken Thompson to build, in his spare time on a
  2670.    scavenged PDP-7, the operating system that became {{UNIX}}.  Less
  2671.    than nine years after that, SPACEWAR was commercialized as one of
  2672.    the first video games; descendants are still {feep}ing in video
  2673.    arcades everywhere.
  2674.  
  2675. :spaghetti code: n. Code with a complex and tangled control
  2676.    structure, esp. one using many GOTOs, exceptions, or other
  2677.    `unstructured' branching constructs.  Pejorative.  The synonym
  2678.    `kangaroo code' has been reported, doubtless because such code
  2679.    has many jumps in it.
  2680.  
  2681. :spaghetti inheritance: n. [encountered among users of object-oriented
  2682.    languages that use inheritance, such as Smalltalk] A convoluted
  2683.    class-subclass graph, often resulting from carelessly deriving
  2684.    subclasses from other classes just for the sake of reusing their
  2685.    code.  Coined in a (successful) attempt to discourage such
  2686.    practice, through guilt-by-association with {spaghetti code}.
  2687.  
  2688. :spam: [from the {MUD} community] vt. To crash a program by overrunning
  2689.    a fixed-size buffer with excessively large input data.  See also
  2690.    {buffer overflow}, {overrun screw}, {smash the stack}.
  2691.  
  2692. :special-case: vt. To write unique code to handle input to or
  2693.    situations arising in program that are somehow distinguished from
  2694.    normal processing.  This would be used for processing of mode
  2695.    switches or interrupt characters in an interactive interface (as
  2696.    opposed, say, to text entry or normal commands), or for processing
  2697.    of {hidden flag}s in the input of a batch program or {filter}.
  2698.  
  2699. :speedometer: n. A pattern of lights displayed on a linear set of
  2700.    LEDs (today) or nixie tubes (yesterday, on ancient mainframes).
  2701.    The pattern is shifted left every N times the software goes
  2702.    through its main loop.  A swiftly moving pattern indicates that the
  2703.    system is mostly idle; the speedometer slows down as the system
  2704.    becomes overloaded.  The speedometer on Sun Microsystems hardware
  2705.    bounces back and forth like the eyes on one of the Cylons from the
  2706.    wretched "Battlestar Galactica" TV series.
  2707.  
  2708.    Historical note: One computer, the GE 600 (later Honeywell 6000)
  2709.    actually had an *analog* speedometer on the front panel,
  2710.    calibrated in instructions executed per second.
  2711.  
  2712. :spell: n. Syn. {incantation}.
  2713.  
  2714. :spelling flame: [USENET] n.  A posting ostentatiously correcting a
  2715.    previous article's spelling as a way of casting scorn on the point
  2716.    the article was trying to make, instead of actually responding to
  2717.    that point (compare {dictionary flame}).  Of course, people who
  2718.    are more than usually slovenly spellers are prone to think
  2719.    *any* correction is a spelling flame.
  2720.  
  2721. :spiffy: /spi'fee/ adj. 1. Said of programs having a pretty,
  2722.    clever, or exceptionally well-designed interface. "Have you seen
  2723.    the spiffy {X} version of {empire} yet?"  2. Said
  2724.    sarcastically of a program that is perceived to have little more
  2725.    than a flashy interface going for it.  Which meaning should be
  2726.    drawn depends delicately on tone of voice and context.  This word
  2727.    was common mainstream slang during the 1940s, in a sense close to
  2728. #1.
  2729.  
  2730. :spike: v. To defeat a selection mechanism by introducing a
  2731.    (sometimes temporary) device that forces a specific result.  The
  2732.    word is used in several industries; telephone engineers refer to
  2733.    spiking a relay by inserting a pin to hold the relay in either the
  2734.    closed or open state, and railroaders refer to spiking a
  2735.    track switch so that it cannot be moved.  In programming
  2736.    environments it normally refers to a temporary change, usually for
  2737.    testing purposes (as opposed to a permanent change, which would be
  2738.    called {hardwired}).
  2739.  
  2740. :spin: vi. Equivalent to {buzz}.  More common among C and UNIX
  2741.    programmers.
  2742.  
  2743. :spl: /S-P-L/ [abbrev, from Set Priority Level] The way
  2744.    traditional UNIX kernels implement mutual exclusion by running code
  2745.    at high interrupt levels.  Used in jargon to describe the act of
  2746.    tuning in or tuning out ordinary communication.  Classically, spl
  2747.    levels run from 1 to 7; "Fred's at spl 6 today." would mean
  2748.    that he is very hard to interrupt.  "Wait till I finish this; I'll
  2749.    spl down then."  See also {interrupts locked out}.
  2750.  
  2751. :splash screen: [Mac] n. Syn. {banner}, sense 3.
  2752.  
  2753. :splat: n. 1. Name used in many places (DEC, IBM, and others) for
  2754.    the asterisk (`*') character (ASCII 0101010).  This may derive
  2755.    from the `squashed-bug' appearance of the asterisk on many early
  2756.    line printers.  2. [MIT] Name used by some people for the
  2757.    `#' character (ASCII 0100011).  3. [Rochester Institute of
  2758.    Technology] The {feature key} on a Mac (same as {alt},
  2759.    sense 2).  4. [Stanford] Name used by some people for the
  2760.    Stanford/ITS extended ASCII
  2761.    circle-x
  2762.    character.  This character is also called `blobby' and `frob',
  2763.    among other names; it is sometimes used by mathematicians as a
  2764.    notation for `tensor product'.  5. [Stanford] Name for the
  2765.    semi-mythical extended ASCII
  2766.    circle-plus
  2767.    character.  6. Canonical name for an output routine that outputs
  2768.    whatever the local interpretation of `splat' is.
  2769.  
  2770.    With ITS and WAITS gone, senses 4--6 are now nearly obsolete.  See
  2771.    also {{ASCII}}.
  2772.  
  2773. :spod: [Great Britain] n. A lower form of life found on {talker
  2774.    system}s and {MUD}s.  The spod has few friends in {RL} and
  2775.    uses talkers instead, finding communication easier and preferable
  2776.    over the net.  He has all the negative traits of the {computer
  2777.    geek} without having any interest in computers per se.  Lacking any
  2778.    knowledge of or interest in how networks work, and considering his
  2779.    access a God-given right, he is a major irritant to sysadmins,
  2780.    clogging up lines in order to reach new MUDs, following passed-on
  2781.    instructions on how to sneak his way onto Internet ("Wow!  It's in
  2782.    America!") and complaining when he is not allowed to use busy
  2783.    routes.  A true spod will start any conversation with "Are you
  2784.    male or female?" (and follow it up with "Got any good
  2785.    numbers/IDs/passwords?") and will not talk to someone physically
  2786.    present in the same terminal room until they log onto the same
  2787.    machine that he is using and enter talk mode.  Compare {newbie},
  2788.    {tourist}, {weenie}, {twink}, {terminal junkie}.
  2789.  
  2790. :spoiler: [USENET: sci.math and rec.puzzles] n. Any remark
  2791.    which telegraphs the solution of a problem or puzzle, thus denying
  2792.    the reader the pleasure of working out the correct answer (see also
  2793.    {interesting}).  Readily forms compounds like `total spoiler',
  2794.    `quasi-spoiler' and even `pseudo-spoiler'.
  2795.  
  2796. :sponge: [UNIX] n. A special case of a {filter} that reads its
  2797.    entire input before writing any output; the canonical example is a
  2798.    sort utility.  Unlike most filters, a sponge can conveniently
  2799.    overwrite the input file with the output data stream.  If a file
  2800.    system has versioning (as ITS did and VMS does now) the
  2801.    sponge/filter distinction loses its usefulness, because directing
  2802.    filter output would just write a new version.  See also {slurp}.
  2803.  
  2804. :spoo: n. Variant of {spooge}, sense 1.
  2805.  
  2806. :spooge: /spooj/ 1. n. Inexplicable or arcane code, or random
  2807.    and probably incorrect output from a computer program.  2. vi. To
  2808.    generate spooge (sense 1).
  2809.  
  2810. :spool: [from early IBM `Simultaneous Peripheral Operation
  2811.    On-Line', but this acronym is widely thought to have been contrived
  2812.    for effect] vt. To send files to some device or program (a
  2813.    `spooler') that queues them up and does something useful with
  2814.    them later.  Without qualification, the spooler is the `print
  2815.    spooler' controlling output of jobs to a printer; but the term has
  2816.    been used in connection with other peripherals (especially plotters
  2817.    and graphics devices) and occasionally even for input devices.  See
  2818.    also {demon}.
  2819.  
  2820. :spool file: n. Any file to which data is {spool}ed to await the
  2821.    next stage of processing.  Especially used in circumstances where
  2822.    spooling the data copes with a mismatch between speeds in two
  2823.    devices or pieces of software.  For example, when you send mail
  2824.    under UNIX, it's typically copied to a spool file to await a
  2825.    transport {demon}'s attentions.  This is borderline techspeak.
  2826.  
  2827. :square tape: n. Mainframe magnetic tape cartridges for use with
  2828.    IBM 3480 or compatible tape drives; or QIC tapes used on
  2829.    workstations and micros.  The term comes from the square (actually
  2830.    rectangular) shape of the cartridges; contrast {round tape}.
  2831.  
  2832. :stack: n. A person's stack is the set of things he or she has to do
  2833.    in the future.  One speaks of the next project to be attacked as
  2834.    having risen to the top of the stack.  "I'm afraid I've got real
  2835.    work to do, so this'll have to be pushed way down on my stack."
  2836.    "I haven't done it yet because every time I pop my stack something
  2837.    new gets pushed."  If you are interrupted several times in the
  2838.    middle of a conversation, "My stack overflowed" means "I
  2839.    forget what we were talking about."  The implication is that more
  2840.    items were pushed onto the stack than could be remembered, so the
  2841.    least recent items were lost.  The usual physical example of a
  2842.    stack is to be found in a cafeteria: a pile of plates or trays
  2843.    sitting on a spring in a well, so that when you put one on the top
  2844.    they all sink down, and when you take one off the top the rest
  2845.    spring up a bit.  See also {push} and {pop}.
  2846.  
  2847.    At MIT, {pdl} used to be a more common synonym for {stack} in
  2848.    all these contexts, and this may still be true.  Everywhere else
  2849.    {stack} seems to be the preferred term.  {Knuth}
  2850.    (`The Art of Computer Programming', second edition, vol. 1,
  2851.    p. 236) says:
  2852.  
  2853.         Many people who realized the importance of stacks and queues
  2854.         independently have given other names to these structures:
  2855.         stacks have been called push-down lists, reversion storages,
  2856.         cellars, nesting stores, piles, last-in-first-out ("LIFO")
  2857.         lists, and even yo-yo lists!
  2858.  
  2859. :stack puke: n. Some processor architectures are said to `puke their
  2860.    guts onto the stack' to save their internal state during exception
  2861.    processing.  The Motorola 68020, for example, regurgitates up to
  2862.    92 bytes on a bus fault.  On a pipelined machine, this can take a
  2863.    while.
  2864.  
  2865. :stale pointer bug: n. Synonym for {aliasing bug} used esp. among
  2866.    microcomputer hackers.
  2867.  
  2868. :state: n. 1. Condition, situation.  "What's the state of your
  2869.    latest hack?"  "It's winning away."  "The system tried to read
  2870.    and write the disk simultaneously and got into a totally {wedged}
  2871.    state."  The standard question "What's your state?"  means
  2872.    "What are you doing?" or "What are you about to do?"  Typical
  2873.    answers are "about to gronk out", or "hungry".  Another
  2874.    standard question is "What's the state of the world?", meaning
  2875.    "What's new?" or "What's going on?".  The more terse and
  2876.    humorous way of asking these questions would be "State-p?".
  2877.    Another way of phrasing the first question under sense 1 would be
  2878.    "state-p latest hack?".  2. Information being maintained in
  2879.    non-permanent memory (electronic or human).
  2880.  
  2881. :steam-powered: adj. Old-fashioned or underpowered; archaic.  This
  2882.    term does not have a strong negative loading and may even be used
  2883.    semi-affectionately for something that clanks and wheezes a lot
  2884.    but hangs in there doing the job.
  2885.  
  2886. :stiffy: [University of Lowell, Massachusetts.] n. 3.5-inch
  2887.    {microfloppies}, so called because their jackets are more firm
  2888.    than those of the 5.25-inch and the 8-inch floppy.  Elsewhere this
  2889.    might be called a `firmy'.
  2890.  
  2891. :stir-fried random: alt. `stir-fried mumble' n. Term used for the 
  2892.    best dish of many of those hackers who can cook.  Consists of
  2893.    random fresh veggies and meat wokked with random spices.  Tasty and
  2894.    economical.  See {random}, {great-wall}, {ravs}, {{laser
  2895.    chicken}}, {{oriental food}}; see also {mumble}.
  2896.  
  2897. :stomp on: vt. To inadvertently overwrite something important, usually
  2898.    automatically.  "All the work I did this weekend got
  2899.    stomped on last night by the nightly server script."  Compare
  2900.    {scribble}, {mangle}, {trash}, {scrog}, {roach}.
  2901.  
  2902. :Stone Age: n., adj. 1. In computer folklore, an ill-defined period
  2903.    from ENIAC (ca. 1943) to the mid-1950s; the great age of
  2904.    electromechanical {dinosaur}s.  Sometimes used for the entire
  2905.    period up to 1960--61 (see {Iron Age}); however, it is funnier
  2906.    and more descriptive to characterize the latter period in terms of
  2907.    a `Bronze Age' era of transistor-logic, pre-ferrite-{core}
  2908.    machines with drum or CRT mass storage (as opposed to just mercury
  2909.    delay lines and/or relays).  See also {Iron Age}.  2. More
  2910.    generally, a pejorative for any crufty, ancient piece of hardware
  2911.    or software technology.  Note that this is used even by people who
  2912.    were there for the {Stone Age} (sense 1).
  2913.  
  2914. :stone knives and bearskins: [ITS, prob. from the Star Trek Classic
  2915.    episode "The City on the Edge of Forever"] n. A term
  2916.    traditionally used by {ITS} fans to describe (and deprecate)
  2917.    computing environments they regard as less advanced, with the
  2918.    (often correct) implication that said environments were grotesquely
  2919.    primitive in light of what is known about good ways to design
  2920.    things.  As in "Don't get too used to the facilities here.  Once
  2921.    you leave MIT it's stone knives and bearskins as far as the eye can
  2922.    see".  Compare {steam-powered}.
  2923.  
  2924. :stoppage: /sto'p*j/ n. Extreme {lossage} that renders
  2925.    something (usually something vital) completely unusable.  "The
  2926.    recent system stoppage was caused by a {fried} transformer."
  2927.  
  2928. :store: [prob. from techspeak `main store'] n. In some
  2929.    varieties of Commonwealth hackish, the referred synonym for
  2930.    {core}.  Thus, `bringing a program into store' means not that
  2931.    one is returning shrink-wrapped software but that a program is
  2932.    being {swap}ped in.
  2933.  
  2934. :stroke: n. Common name for the slant (`/', ASCII 0101111)
  2935.    character.  See {ASCII} for other synonyms.
  2936.  
  2937. :strudel: n. Common (spoken) name for the at-sign (`@', ASCII
  2938.    1000000) character.  See {ASCII} for other synonyms.
  2939.  
  2940. :stubroutine: /stuhb'roo-teen/ [contraction of `stub
  2941.    subroutine'] n. Tiny, often vacuous placeholder for a subroutine
  2942.    that is to be written or fleshed out later.
  2943.  
  2944. :studlycaps: /stuhd'lee-kaps/ n. A hackish form of silliness
  2945.    similar to {BiCapitalization} for trademarks, but applied
  2946.    randomly and to arbitrary text rather than to trademarks.  ThE
  2947.    oRigiN and SigNificaNce of thIs pRacTicE iS oBscuRe.
  2948.  
  2949. :stunning: adj. Mind-bogglingly stupid.  Usually used in sarcasm.
  2950.    "You want to code *what* in ADA?  That's ... a stunning
  2951.    idea!"
  2952.  
  2953. :stupid-sort: n. Syn. {bogo-sort}.
  2954.  
  2955. :Stupids: n. Term used by {samurai} for the {suit}s who
  2956.    employ them; succinctly expresses an attitude at least as common,
  2957.    though usually better disguised, among other subcultures of
  2958.    hackers.  There may be intended reference here to an SF story
  2959.    originally published in 1952 but much anthologized since, Mark
  2960.    Clifton's `Star, Bright'.  In it, a super-genius child
  2961.    classifies humans into a very few `Brights' like herself, a huge
  2962.    majority of `Stupids', and a minority of `Tweens', the merely
  2963.    ordinary geniuses.
  2964.  
  2965. :Sturgeon's Law: prov. "Ninety percent of everything is crap".  Derived
  2966.    from a quote by science fiction author Theodore Sturgeon, who once
  2967.    said, "Sure, 90% of science fiction is crud. That's because 90% of
  2968.    everything is crud."  Oddly, when Sturgeon's Law is cited, the 
  2969.    final word is almost invariably changed to `crap'.  Compare
  2970.    {Hanlon's Razor}.  Though this maxim originated in SF fandom,
  2971.    most hackers recognize it and are all too aware of its truth.
  2972.  
  2973. :sucking mud: [Applied Data Research] adj. (also `pumping
  2974.    mud') Crashed or {wedged}.  Usually said of a machine that provides
  2975.    some service to a network, such as a file server.  This Dallas
  2976.    regionalism derives from the East Texas oilfield lament, "Shut
  2977.    'er down, Ma, she's a-suckin' mud".  Often used as a query.  "We
  2978.    are going to reconfigure the network, are you ready to suck mud?"
  2979.  
  2980. :sufficiently small: adj. Syn. {suitably small}.
  2981.  
  2982. :suit: n. 1. Ugly and uncomfortable `business clothing' often
  2983.    worn by non-hackers.  Invariably worn with a `tie', a
  2984.    strangulation device that partially cuts off the blood supply to
  2985.    the brain.  It is thought that this explains much about the
  2986.    behavior of suit-wearers.  Compare {droid}.  2. A person who
  2987.    habitually wears suits, as distinct from a techie or hacker.  See
  2988.    {loser}, {burble}, {management}, {Stupids}, {SNAFU
  2989.    principle}, and {brain-damaged}.  English, by the way, is
  2990.    relatively kind; our Moscow correspondent informs us that the
  2991.    corresponding idiom in Russian hacker jargon is `sovok', lit. a
  2992.    tool for grabbing garbage.
  2993.  
  2994. :suitable win: n. See {win}.
  2995.  
  2996. :suitably small: [perverted from mathematical jargon] adj. An
  2997.    expression used ironically to characterize unquantifiable
  2998.    behavior that differs from expected or required behavior.  For
  2999.    example, suppose a newly created program came up with a correct
  3000.    full-screen display, and one publicly exclaimed: "It works!"
  3001.    Then, if the program dumps core on the first mouse click, one might
  3002.    add: "Well, for suitably small values of `works'."  Compare
  3003.    the characterization of pi under {{random numbers}}.
  3004.  
  3005. :sun lounge: [Great Britain] n. The room where all the Sun
  3006.    workstations live.  The humor in this term comes from the fact
  3007.    that it's also in mainstream use to describe a solarium, and all
  3008.    those Sun workstations clustered together give off an amazing
  3009.    amount of heat.
  3010.  
  3011. :sun-stools: n. Unflattering hackerism for SunTools, a pre-X
  3012.    windowing environment notorious in its day for size, slowness, and
  3013.    misfeatures.  {X}, however, is larger and slower; see
  3014.    {second-system effect}.
  3015.  
  3016. :sunspots: n. 1. Notional cause of an odd error.  "Why did the
  3017.    program suddenly turn the screen blue?"  "Sunspots, I guess."
  3018.    2. Also the cause of {bit rot} --- from the myth that sunspots
  3019.    will increase {cosmic rays}, which can flip single bits in memory.
  3020.    See {cosmic rays}, {phase of the moon}.
  3021.  
  3022. :superprogrammer: n. A prolific programmer; one who can code
  3023.    exceedingly well and quickly.  Not all hackers are
  3024.    superprogrammers, but many are.  (Productivity can vary from one
  3025.    programmer to another by three orders of magnitude.  For example,
  3026.    one programmer might be able to write an average of 3 lines of
  3027.    working code in one day, while another, with the proper tools,
  3028.    might be able to write 3,000.  This range is astonishing; it is
  3029.    matched in very few other areas of human endeavor.)  The term
  3030.    `superprogrammer' is more commonly used within such places as IBM
  3031.    than in the hacker community.  It tends to stress naive measures
  3032.    of productivity and to underweight creativity, ingenuity, and
  3033.    getting the job *done* --- and to sidestep the question of
  3034.    whether the 3,000 lines of code do more or less useful work than
  3035.    three lines that do the {Right Thing}.  Hackers tend to prefer
  3036.    the terms {hacker} and {wizard}.
  3037.  
  3038. :superuser: [UNIX] n. Syn. {root}, {avatar}.  This usage has
  3039.    spread to non-UNIX environments; the superuser is any account with
  3040.    all {wheel} bits on.  A more specific term than {wheel}.
  3041.  
  3042. :support: n. After-sale handholding; something many software
  3043.    vendors promise but few deliver.  To hackers, most support people
  3044.    are useless --- because by the time a hacker calls support he or
  3045.    she will usually know the relevant manuals better than the support
  3046.    people (sadly, this is *not* a joke or exaggeration).  A
  3047.    hacker's idea of `support' is a t^ete-`a-t^ete with the
  3048.    software's designer.
  3049.  
  3050. :Suzie COBOL: /soo'zee koh'bol/ 1. [IBM: prob. from Frank Zappa's
  3051.    `Suzy Creamcheese'] n. A coder straight out of training school who
  3052.    knows everything except the value of comments in plain English.
  3053.    Also (fashionable among personkind wishing to avoid accusations of
  3054.    sexism) `Sammy Cobol' or (in some non-IBM circles) `Cobol Charlie'.
  3055.    2. [proposed] Meta-name for any {code grinder}, analogous to
  3056.    {J. Random Hacker}.
  3057.  
  3058. :swab: /swob/ [From the mnemonic for the PDP-11 `SWAp Byte'
  3059.    instruction, as immortalized in the `dd(1)' option `conv=swab'
  3060.    (see {dd})] 1. vt. To solve the {NUXI problem} by swapping
  3061.    bytes in a file.  2. n. The program in V7 UNIX used to perform this
  3062.    action, or anything functionally equivalent to it.  See also
  3063.    {big-endian}, {little-endian}, {middle-endian},
  3064.    {bytesexual}.
  3065.  
  3066. :swap: vt. 1. [techspeak] To move information from a fast-access
  3067.    memory to a slow-access memory (`swap out'), or vice versa
  3068.    (`swap in').  Often refers specifically to the use of disks as
  3069.    `virtual memory'.  As pieces of data or program are needed, they
  3070.    are swapped into {core} for processing; when they are no longer
  3071.    needed they may be swapped out again.  2. The jargon use of these
  3072.    terms analogizes people's short-term memories with core.  Cramming
  3073.    for an exam might be spoken of as swapping in.  If you temporarily
  3074.    forget someone's name, but then remember it, your excuse is that it
  3075.    was swapped out.  To `keep something swapped in' means to keep it
  3076.    fresh in your memory: "I reread the TECO manual every few months
  3077.    to keep it swapped in."  If someone interrupts you just as you got
  3078.    a good idea, you might say "Wait a moment while I swap this
  3079.    out", implying that the piece of paper is your extra-somatic
  3080.    memory and if you don't swap the info out by writing it down it
  3081.    will get overwritten and lost as you talk.  Compare {page in},
  3082.    {page out}.
  3083.  
  3084. :swap space: n. Storage space, especially temporary storage space
  3085.    used during a move or reconfiguration.  "I'm just using that corner
  3086.    of the machine room for swap space."
  3087.  
  3088. :swapped in: n. See {swap}.  See also {page in}.
  3089.  
  3090. :swapped out: n. See {swap}.  See also {page out}.
  3091.  
  3092. :swizzle: v. To convert external names, array indices, or references
  3093.    within a data structure into address pointers when the data
  3094.    structure is brought into main memory from external storage (also
  3095.    called `pointer swizzling'); this may be done for speed in
  3096.    chasing references or to simplify code (e.g., by turning lots of
  3097.    name lookups into pointer dereferences).  The converse operation is
  3098.    sometimes termed `unswizzling'.  See also {snap}.
  3099.  
  3100. :sync: /sink/ (var. `synch') n., vi. 1. To synchronize, to
  3101.    bring into synchronization.  2. [techspeak] To force all pending
  3102.    I/O to the disk; see {flush}, sense 2.  3. More generally, to
  3103.    force a number of competing processes or agents to a state that
  3104.    would be `safe' if the system were to crash; thus, to checkpoint
  3105.    (in the database-theory sense).
  3106.  
  3107. :syntactic salt: n. The opposite of {syntactic sugar}, a feature
  3108.    designed to make it harder to write bad code.  Specifically,
  3109.    syntactic salt is a hoop the programmer must jump through just to
  3110.    prove that he knows what's going on, rather than to express a
  3111.    program action.  Some programmers consider required type
  3112.    declarations to be syntactic salt.  A requirement to write
  3113.    `end if', `end while', `end do', etc. to terminate
  3114.    the last block controlled by a control construct (as opposed to
  3115.    just `end') would definitely be syntactic salt. Syntactic salt
  3116.    is like the real thing in that it tends to raise hackers' blood
  3117.    pressures in an unhealthy way..
  3118.  
  3119. :syntactic sugar: [coined by Peter Landin] n. Features added to a
  3120.    language or other formalism to make it `sweeter' for humans,
  3121.    which do not affect the expressiveness of the formalism (compare
  3122.    {chrome}).  Used esp. when there is an obvious and trivial
  3123.    translation of the `sugar' feature into other constructs already
  3124.    present in the notation.  C's `a[i]' notation is syntactic
  3125.    sugar for `*(a + i)'.  "Syntactic sugar causes cancer of the
  3126.    semicolon." --- Alan Perlis.
  3127.  
  3128.    The variants `syntactic saccharin' and `syntactic syrup' are
  3129.    also recorded.  These denotes something even more gratuitous, in
  3130.    that syntactic sugar serves a purpose (making something more
  3131.    acceptable to humans), but syntactic saccharin or syrup serves no
  3132.    purpose at all.  Compare {candygrammar}, {syntactic salt}.
  3133.  
  3134. :sys-frog: /sis'frog/ [the PLATO system] n. Playful variant of
  3135.    `sysprog', which is in turn short for `systems programmer'.
  3136.  
  3137. :sysadmin: /sis'ad-min/ n. Common contraction of `system
  3138.    admin'; see {admin}.
  3139.  
  3140. :sysape: /sysape/ n. A rather derogatory term for a computer
  3141.    operator; a play on {sysop} common at sites that use the banana
  3142.    hierarchy of problem complexity (see {one-banana
  3143.    problem}).
  3144.  
  3145. :sysop: /sis'op/ n. [esp. in the BBS world] The operator (and
  3146.    usually the owner) of a bulletin-board system.  A common neophyte
  3147.    mistake on {FidoNet} is to address a message to `sysop' in an
  3148.    international {echo}, thus sending it to hundreds of sysops
  3149.    around the world.
  3150.  
  3151. :system: n. 1. The supervisor program or OS on a computer.  2. The
  3152.    entire computer system, including input/output devices, the
  3153.    supervisor program or OS, and possibly other software.  3. Any
  3154.    large-scale program.  4. Any method or algorithm.  5. `System
  3155.    hacker': one who hacks the system (in senses 1 and 2 only; for
  3156.    sense 3 one mentions the particular program: e.g., `LISP
  3157.    hacker')
  3158.  
  3159. :systems jock: n. See {jock}, (sense 2).
  3160.  
  3161. :system mangler: n. Humorous synonym for `system manager', poss.
  3162.    from the fact that one major IBM OS had a {root} account called
  3163.    SYSMANGR.  Refers specifically to a systems programmer in charge of
  3164.    administration, software maintenance, and updates at some site.
  3165.    Unlike {admin}, this term emphasizes the technical end of the
  3166.    skills involved.
  3167.  
  3168. :SysVile: /sis-vi:l'/ n. See {Missed'em-five}.
  3169.  
  3170. = T =
  3171. =====
  3172.  
  3173. :T: /T/ 1. [from LISP terminology for `true'] Yes.  Used in
  3174.    reply to a question (particularly one asked using the `-P'
  3175.    convention).  In LISP, the constant T means `true', among other
  3176.    things.  Some hackers use `T' and `NIL' instead of `Yes' and `No'
  3177.    almost reflexively.  This sometimes causes misunderstandings.  When
  3178.    a waiter or flight attendant asks whether a hacker wants coffee, he
  3179.    may well respond `T', meaning that he wants coffee; but of course
  3180.    he will be brought a cup of tea instead.  As it happens, most
  3181.    hackers (particularly those who frequent Chinese restaurants) like
  3182.    tea at least as well as coffee --- so it is not that big a problem.
  3183.    2. See {time T} (also {since time T equals minus infinity}).
  3184.    3. [techspeak] In transaction-processing circles, an abbreviation
  3185.    for the noun `transaction'.  4. [Purdue] Alternate spelling of
  3186.    {tee}. 5. A dialect of {LISP} developed at Yale.
  3187.  
  3188. :tail recursion: n. If you aren't sick of it already, see {tail
  3189.    recursion}.
  3190.  
  3191. :talk mode: n. A feature supported by UNIX, ITS, and some other
  3192.    OSes that allows two or more logged-in users to set up a real-time
  3193.    on-line conversation.  It combines the immediacy of talking with
  3194.    all the precision (and verbosity) that written language entails.
  3195.    It is difficult to communicate inflection, though conventions have
  3196.    arisen for some of these (see the section on writing style in the
  3197.    Prependices for details).
  3198.  
  3199.    Talk mode has a special set of jargon words, used to save typing,
  3200.    which are not used orally.  Some of these are identical to (and
  3201.    probably derived from) Morse-code jargon used by ham-radio amateurs
  3202.    since the 1920s.
  3203.  
  3204.      BCNU    
  3205.           be seeing you
  3206.      BTW
  3207.           by the way
  3208.      BYE?
  3209.           are you ready to unlink?  (this is the standard way to end a
  3210.           talk-mode conversation; the other person types `BYE' to
  3211.           confirm, or else continues the conversation)
  3212.      CUL     
  3213.           see you later
  3214.      ENQ?
  3215.           are you busy?  (expects `ACK' or `NAK' in return)
  3216.      FOO?
  3217.           are you there? (often used on unexpected links, meaning also
  3218.           "Sorry if I butted in ..." (linker) or "What's up?"  (linkee))
  3219.      FWIW
  3220.           for what it's worth
  3221.      FYI     
  3222.           for your information
  3223.      FYA     
  3224.           for your amusement
  3225.      GA
  3226.           go ahead (used when two people have tried to type
  3227.           simultaneously; this cedes the right to type to the other)
  3228.      GRMBL   
  3229.           grumble (expresses disquiet or disagreement)
  3230.      HELLOP
  3231.           hello? (an instance of the `-P' convention)
  3232.      JAM
  3233.           just a minute (equivalent to `SEC....')
  3234.      MIN     
  3235.           same as `JAM'
  3236.      NIL     
  3237.           no (see {NIL})
  3238.      O
  3239.           over to you
  3240.      OO      
  3241.           over and out
  3242.      /
  3243.           another form of "over to you" (from x/y as "x over y")
  3244.      \
  3245.           lambda (used in discussing LISPy things)
  3246.      OBTW  
  3247.           oh, by the way
  3248.      R U THERE?
  3249.           are you there?
  3250.      SEC     
  3251.           wait a second (sometimes written `SEC...')
  3252.      T
  3253.           yes (see the main entry for {T})
  3254.      TNX     
  3255.           thanks
  3256.      TNX 1.0E6
  3257.           thanks a million (humorous)
  3258.      TNXE6
  3259.           another form of "thanks a million"
  3260.      WRT     
  3261.           with regard to, or with respect to.
  3262.      WTF
  3263.           the universal interrogative particle; WTF knows what it means?
  3264.      WTH     
  3265.           what the hell?
  3266.      <double newline>
  3267.           When the typing party has finished, he/she types two newlines
  3268.           to signal that he/she is done; this leaves a blank line
  3269.           between `speeches' in the conversation, making it easier to
  3270.           reread the preceding text.
  3271.      <name>:
  3272.           When three or more terminals are linked, it is conventional
  3273.           for each typist to {prepend} his/her login name or handle and
  3274.           a colon (or a hyphen) to each line to indicate who is typing
  3275.           (some conferencing facilities do this automatically).  The
  3276.           login name is often shortened to a unique prefix (possibly a
  3277.           single letter) during a very long conversation.
  3278.      /\/\/\
  3279.           A giggle or chuckle.  On a MUD, this usually means `earthquake
  3280.           fault'.
  3281.  
  3282.    Most of the above sub-jargon is used at both Stanford and MIT.
  3283.    Several of these expressions are also common in {email}, esp.
  3284.    FYI, FYA, BTW, BCNU, WTF, and CUL.  A few other abbreviations have
  3285.    been reported from commercial networks, such as GEnie and
  3286.    CompuServe, where on-line `live' chat including more than two
  3287.    people is common and usually involves a more `social' context,
  3288.    notably the following:
  3289.  
  3290.      <g>
  3291.           grin
  3292.      <gr&d>
  3293.           grinning, running, and ducking
  3294.      BBL
  3295.           be back later
  3296.      BRB
  3297.           be right back
  3298.      HHOJ
  3299.           ha ha only joking
  3300.      HHOK
  3301.           ha ha only kidding
  3302.      HHOS
  3303.           {ha ha only serious}
  3304.      IMHO
  3305.           in my humble opinion (see {IMHO})
  3306.      LOL
  3307.           laughing out loud
  3308.      NHOH
  3309.           Never Heard of Him/Her (often used in {initgame})
  3310.      ROTF
  3311.           rolling on the floor
  3312.      ROTFL
  3313.           rolling on the floor laughing
  3314.      AFK
  3315.           away from keyboard
  3316.      b4
  3317.           before
  3318.      CU l8tr
  3319.           see you later
  3320.      MORF
  3321.           male or female?
  3322.      TTFN
  3323.           ta-ta for now
  3324.      TTYL
  3325.           talk to you later
  3326.      OIC
  3327.           oh, I see
  3328.      rehi
  3329.           hello again
  3330.  
  3331.    Most of these are not used at universities or in the UNIX world,
  3332.    though ROTF and TTFN have gained some currency there and IMHO is
  3333.    common; conversely, most of the people who know these are
  3334.    unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.
  3335.  
  3336.    The {MUD} community uses a mixture of USENET/Internet emoticons,
  3337.    a few of the more natural of the old-style talk-mode abbrevs, and
  3338.    some of the `social' list above; specifically, MUD respondents
  3339.    report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH.  The use
  3340.    of `rehi' is also common; in fact, mudders are fond of re-
  3341.    compounds and will frequently `rehug' or `rebonk' (see
  3342.    {bonk/oif}) people.  The word `re' by itself is taken as
  3343.    `regreet'.  In general, though, MUDders express a preference for
  3344.    typing things out in full rather than using abbreviations; this may
  3345.    be due to the relative youth of the MUD cultures, which tend to
  3346.    include many touch typists and to assume high-speed links.  The
  3347.    following uses specific to MUDs are reported:
  3348.  
  3349.      CU l8er
  3350.           see you later (mutant of `CU l8tr')
  3351.      FOAD
  3352.           fuck off and die (use of this is generally OTT)
  3353.      OTT
  3354.           over the top (excessive, uncalled for)
  3355.      ppl
  3356.           abbrev for "people"
  3357.      THX
  3358.           thanks (mutant of `TNX'; clearly this comes in batches of 1138
  3359.           (the Lucasian K)).
  3360.      UOK?
  3361.           are you OK?
  3362.  
  3363.    Some {BIFF}isms (notably the variant spelling `d00d')
  3364.    appear to be passing into wider use among some subgroups of
  3365.    MUDders.
  3366.  
  3367.    One final note on talk mode style: neophytes, when in talk mode,
  3368.    often seem to think they must produce letter-perfect prose because
  3369.    they are typing rather than speaking.  This is not the best
  3370.    approach.  It can be very frustrating to wait while your partner
  3371.    pauses to think of a word, or repeatedly makes the same spelling
  3372.    error and backs up to fix it.  It is usually best just to leave
  3373.    typographical errors behind and plunge forward, unless severe
  3374.    confusion may result; in that case it is often fastest just to type
  3375.    "xxx" and start over from before the mistake.
  3376.  
  3377.    See also {hakspek}, {emoticon}, {bonk/oif}.
  3378.  
  3379. :talker system: n. British hackerism for software that enables
  3380.    real-time chat or {talk mode}.
  3381.  
  3382. :tall card: n. A PC/AT-size expansion card (these can be larger
  3383.    than IBM PC or XT cards because the AT case is bigger).  See also
  3384.    {short card}.  When IBM introduced the PS/2 model 30 (its last
  3385.    gasp at supporting the ISA) they made the case lower and many
  3386.    industry-standard tall cards wouldn't fit; this was felt to be a
  3387.    reincarnation of the {connector conspiracy}, done with less
  3388.    style.
  3389.  
  3390. :tanked: adj. Same as {down}, used primarily by UNIX hackers.  See
  3391.    also {hosed}.  Popularized as a synonym for `drunk' by Steve
  3392.    Dallas in the late lamented "Bloom County" comic strip.
  3393.  
  3394. :TANSTAAFL: /tan'sto-fl/ [acronym, from Robert Heinlein's
  3395.    classic `The Moon is a Harsh Mistress'.]  "There Ain't No
  3396.    Such Thing As A Free Lunch", often invoked when someone is balking
  3397.    at an ugly design requirement or the prospect of using an
  3398.    unpleasantly {heavyweight} technique.  "What? Don't tell me I
  3399.    have to implement a database back end to get my address book
  3400.    program to work!"  "Well, TANSTAAFL you know."  This phrase owes
  3401.    some of its popularity to the high concentration of science-fiction
  3402.    fans and political libertarians in hackerdom (see Appendix
  3403.    B).
  3404.  
  3405. :tar and feather: [from UNIX `tar(1)'] vt. To create a
  3406.    transportable archive from a group of files by first sticking them
  3407.    together with `tar(1)' (the Tape ARchiver) and then
  3408.    compressing the result (see {compress}).  The latter action is
  3409.    dubbed `feathering' by analogy to what you do with an airplane
  3410.    propeller to decrease wind resistance, or with an oar to reduce
  3411.    water resistance; smaller files, after all, slip through comm links
  3412.    more easily.
  3413.  
  3414. :taste: [primarily MIT] n. 1. The quality in a program that tends
  3415.    to be inversely proportional to the number of features, hacks, and
  3416.    kluges programmed into it.  Also `tasty', `tasteful',
  3417.    `tastefulness'.  "This feature comes in N tasty flavors."
  3418.    Although `tasteful' and `flavorful' are essentially
  3419.    synonyms, `taste' and {flavor} are not.  Taste refers to
  3420.    sound judgment on the part of the creator; a program or feature
  3421.    can *exhibit* taste but cannot *have* taste.  On the other
  3422.    hand, a feature can have {flavor}.  Also, {flavor} has the
  3423.    additional meaning of `kind' or `variety' not shared by
  3424.    `taste'.  {Flavor} is a more popular word than `taste',
  3425.    though both are used.  See also {elegant}.  2. Alt. sp. of
  3426.    {tayste}.
  3427.  
  3428. :tayste: /tayst/ n. Two bits; also as {taste}.  Syn. {crumb},
  3429.    {quarter}.  Compare {{byte}}, {dynner}, {playte},
  3430.    {nybble}, {quad}.
  3431.  
  3432. :TCB: /T-C-B/ [IBM] n. 1. Trouble Came Back.  An intermittent or
  3433.    difficult-to-reproduce problem that has failed to respond to
  3434.    neglect.  Compare {heisenbug}.  Not to be confused with:
  3435.    2. Trusted Computing Base, an `official' jargon term from the
  3436.    {Orange Book}.
  3437.  
  3438. :tea, ISO standard cup of: [South Africa] n. A cup of tea with milk
  3439.    and one teaspoon of sugar, where the milk is poured into the cup
  3440.    before the tea.  Variations are ISO 0, with no sugar; ISO 2, with
  3441.    two spoons of sugar; and so on.
  3442.  
  3443.    Like many ISO standards, this one has a faintly alien ring in North
  3444.    America, where hackers generally shun the decadent British practice
  3445.    of adulterating perfectly good tea with dairy products and
  3446.    prefer instead to add a wedge of lemon, if anything.  If one were
  3447.    feeling extremely silly, one might hypothesize an analogous `ANSI
  3448.    standard cup of tea' and wind up with a political situation
  3449.    distressingly similar to several that arise in much more serious
  3450.    technical contexts.  Milk and lemon don't mix very well.
  3451.  
  3452. :TechRef: /tek'ref/ [MS-DOS] n. The original `IBM PC
  3453.    Technical Reference Manual', including the BIOS listing and
  3454.    complete schematics for the PC.  The only PC documentation in the
  3455.    issue package that's considered serious by real hackers.
  3456.  
  3457. :TECO: /tee'koh/ obs. 1. vt. Originally, to edit using the TECO
  3458.    editor in one of its infinite variations (see below).  2. vt.,obs.
  3459.    To edit even when TECO is *not* the editor being used!  This
  3460.    usage is rare and now primarily historical.  2. [originally an
  3461.    acronym for `[paper] Tape Editor and COrrector'; later, `Text
  3462.    Editor and COrrector'] n. A text editor developed at MIT and
  3463.    modified by just about everybody.  With all the dialects included,
  3464.    TECO might have been the most prolific editor in use before
  3465.    {EMACS}, to which it was directly ancestral.  Noted for its
  3466.    powerful programming-language-like features and its unspeakably
  3467.    hairy syntax.  It is literally the case that every string of
  3468.    characters is a valid TECO program (though probably not a useful
  3469.    one); one common hacker game used to be mentally working out what
  3470.    the TECO commands corresponding to human names did.  As an example
  3471.    of TECO's obscurity, here is a TECO program that takes a list of
  3472.    names such as:
  3473.  
  3474.      Loser, J. Random
  3475.      Quux, The Great
  3476.      Dick, Moby
  3477.  
  3478.    sorts them alphabetically according to surname, and then puts the
  3479.    surname last, removing the comma, to produce the following:
  3480.  
  3481.      Moby Dick
  3482.      J. Random Loser
  3483.      The Great Quux
  3484.  
  3485.    The program is
  3486.  
  3487.      [1 J^P$L$$
  3488.      J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$
  3489.  
  3490.    (where ^B means `Control-B' (ASCII 0000010) and $ is actually
  3491.    an {alt} or escape (ASCII 0011011) character).
  3492.  
  3493.    In fact, this very program was used to produce the second, sorted
  3494.    list from the first list.  The first hack at it had a {bug}: GLS
  3495.    (the author) had accidentally omitted the `@' in front
  3496.    of `F^B', which as anyone can see is clearly the {Wrong Thing}.  It
  3497.    worked fine the second time.  There is no space to describe all the
  3498.    features of TECO, but it may be of interest that `^P' means
  3499.    `sort' and `J<.-Z; ... L>' is an idiomatic series of commands
  3500.    for `do once for every line'.
  3501.  
  3502.    In mid-1991, TECO is pretty much one with the dust of history,
  3503.    having been replaced in the affections of hackerdom by {EMACS}.
  3504.    Descendants of an early (and somewhat lobotomized) version adopted
  3505.    by DEC can still be found lurking on VMS and a couple of crufty
  3506.    PDP-11 operating systems, however, and ports of the more advanced
  3507.    MIT versions remain the focus of some antiquarian interest.  See
  3508.    also {retrocomputing}, {write-only language}.
  3509.  
  3510. :tee: n.,vt. [Purdue] A carbon copy of an electronic transmission.
  3511.    "Oh, you're sending him the {bits} to that?  Slap on a tee for
  3512.    me."  From the UNIX command `tee(1)', itself named after a
  3513.    pipe fitting (see {plumbing}).  Can also mean `save one for me',
  3514.    as in "Tee a slice for me!"  Also spelled `T'.
  3515.  
  3516. :teledildonics: /tel`*-dil-do'-niks/ n. Sex in a computer
  3517.    simulated virtual reality, esp. computer-mediated sexual
  3518.    interaction between the {VR} presences of two humans.  This
  3519.    practice is not yet possible except in the rather limited form of
  3520.    erotic conversation on {MUD}s and the like.  The term, however,
  3521.    is widely recognized in the VR community as a {ha ha only
  3522.    serious} projection of things to come.  "When we can sustain a
  3523.    multi-sensory surround good enough for teledildonics, *then*
  3524.    we'll know we're getting somewhere."
  3525.  
  3526. :Telerat: /tel'*-rat/ n. Unflattering hackerism for `Teleray', a
  3527.    line of extremely losing terminals.  Compare {AIDX}, {terminak},
  3528.    {Macintrash} {Nominal Semidestructor}, {Open DeathTrap},
  3529.    {ScumOS}, {sun-stools}, {HP-SUX}.
  3530.  
  3531. :TELNET: /tel'net/ vt. To communicate with another Internet host
  3532.    using the {TELNET} protocol (usually using a program of the same
  3533.    name).  TOPS-10 people used the word IMPCOM, since that was the
  3534.    program name for them.  Sometimes abbreviated to TN /T-N/.  "I
  3535.    usually TN over to SAIL just to read the AP News."
  3536.  
  3537. :ten-finger interface: n. The interface between two networks that
  3538.    cannot be directly connected for security reasons; refers to the
  3539.    practice of placing two terminals side by side and having an
  3540.    operator read from one and type into the other.
  3541.  
  3542. :tense: adj. Of programs, very clever and efficient.  A tense piece
  3543.    of code often got that way because it was highly {bum}med, but
  3544.    sometimes it was just based on a great idea.  A comment in a clever
  3545.    routine by Mike Kazar, once a grad-student hacker at CMU: "This
  3546.    routine is so tense it will bring tears to your eyes."  A tense
  3547.    programmer is one who produces tense code.
  3548.  
  3549. :tenured graduate student: n. One who has been in graduate school
  3550.    for 10 years (the usual maximum is 5 or 6): a `ten-yeared'
  3551.    student (get it?).  Actually, this term may be used of any grad
  3552.    student beginning in his seventh year.  Students don't really get
  3553.    tenure, of course, the way professors do, but a tenth-year graduate
  3554.    student has probably been around the university longer than any
  3555.    untenured professor.
  3556.  
  3557. :tera-: /te'r*/ [SI] pref. See {{quantifiers}}.
  3558.  
  3559. :teraflop club: /te'r*-flop kluhb/ [FLOP = Floating Point
  3560.    Operation] n. A mythical association of people who consume
  3561.    outrageous amounts of computer time in order to produce a few
  3562.    simple pictures of glass balls with intricate ray-tracing
  3563.    techniques.  Caltech professor James Kajiya is said to have been
  3564.    the founder.
  3565.  
  3566. :terminak: /ter'mi-nak`/ [Caltech, ca. 1979] n. Any
  3567.    malfunctioning computer terminal.  A common failure mode of
  3568.    Lear-Siegler ADM 3a terminals caused the `L' key to produce the
  3569.    `K' code instead; complaints about this tended to look like
  3570.    "Terminak #3 has a bad keyboard.  Pkease fix."  See {AIDX},
  3571.    {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS},
  3572.    {sun-stools}, {Telerat}, {HP-SUX}.
  3573.  
  3574. :terminal brain death: n. The extreme form of {terminal illness}
  3575.    (sense 1).  What someone who has obviously been hacking
  3576.    continuously for far too long is said to be suffering from.
  3577.  
  3578. :terminal illness: n. 1. Syn. {raster burn}.  2. The `burn-in'
  3579.    condition your CRT tends to get if you don't have a screen saver.
  3580.  
  3581. :terminal junkie: [UK] n. A {wannabee} or early {larval
  3582.    stage} hacker who spends most of his or her time wandering the
  3583.    directory tree and writing {noddy} programs just to get a fix of
  3584.    computer time.  Variants include `terminal jockey', `console
  3585.    junkie', and {console jockey}.  The term `console jockey'
  3586.    seems to imply more expertise than the other three (possibly
  3587.    because of the exalted status of the {{console}} relative to an
  3588.    ordinary terminal).  See also {twink}, {read-only
  3589.    user}.
  3590.  
  3591. :terpri: /ter'pree/ [from LISP 1.5 (and later, MacLISP)] vi. To
  3592.    output a {newline}.  Now rare as jargon, though still used as
  3593.    techspeak in Common LISP.  It is a contraction of `TERminate PRInt
  3594.    line', named for the fact that, on some early OSes and hardware, no
  3595.    characters would be printed until a complete line was formed, so
  3596.    this operation terminated the line and emitted the output.
  3597.  
  3598. :test: n. 1. Real users bashing on a prototype long enough to get
  3599.    thoroughly acquainted with it, with careful monitoring and followup
  3600.    of the results.  2. Some bored random user trying a couple of the
  3601.    simpler features with a developer looking over his or her shoulder,
  3602.    ready to pounce on mistakes.  Judging by the quality of most
  3603.    software, the second definition is far more prevalent.  See also
  3604.    {demo}.
  3605.  
  3606. :TeX:: /tekh/ n. An extremely powerful {macro}-based
  3607.    text formatter written by Donald E. {Knuth}, very popular in the
  3608.    computer-science community (it is good enough to have displaced
  3609.    UNIX `troff(1)', the other favored formatter, even at many
  3610.    UNIX installations).  TeX fans insist on the correct (guttural)
  3611.    pronunciation, and the correct spelling (all caps, squished
  3612.    together, with the E depressed below the baseline; the
  3613.    mixed-case `TeX' is considered an acceptable kluge on ASCII-only
  3614.    devices).  Fans like to proliferate names from the word `TeX'
  3615.    --- such as TeXnician (TeX user), TeXhacker (TeX
  3616.    programmer), TeXmaster (competent TeX programmer), TeXhax,
  3617.    and TeXnique.
  3618.  
  3619.    Knuth began TeX because he had become annoyed at the declining
  3620.    quality of the typesetting in volumes I--III of his monumental
  3621.    `Art of Computer Programming' (see {Knuth}, also
  3622.    {bible}).  In a manifestation of the typical hackish urge to
  3623.    solve the problem at hand once and for all, he began to design his
  3624.    own typesetting language.  He thought he would finish it on his
  3625.    sabbatical in 1978; he was wrong by only about 8 years.  The
  3626.    language was finally frozen around 1985, but volume IV of `The
  3627.    Art of Computer Programming' has yet to appear as of mid-1993.  The
  3628.    impact and influence of TeX's design has been such that nobody
  3629.    minds this very much.  Many grand hackish projects have started as
  3630.    a bit of tool-building on the way to something else; Knuth's
  3631.    diversion was simply on a grander scale than most.
  3632.  
  3633.    TeX{} has also been a noteworthy example of free, shared, but
  3634.    high-quality software.  Knuth used to offer monetary awards to people
  3635.    who found and reported bugs in it; as the years wore on and the few
  3636.    remaining bugs were fixed (and new ones even harder to find), the
  3637.    bribe went up.  Though well-written, TeX{} is so large (and so full of
  3638.    cutting edge technique) that it is said to have unearthed at least
  3639.    one bug in every Pascal it has been compiled with.
  3640.  
  3641. :text: n. 1. [techspeak] Executable code, esp. a `pure code'
  3642.    portion shared between multiple instances of a program running in a
  3643.    multitasking OS (compare {English}).  2. Textual material in the
  3644.    mainstream sense; data in ordinary {{ASCII}} or {{EBCDIC}}
  3645.    representation (see {flat-ASCII}).  "Those are text files;
  3646.    you can review them using the editor."  These two contradictory
  3647.    senses confuse hackers, too.
  3648.  
  3649. :thanks in advance: [USENET] Conventional net.politeness ending a
  3650.    posted request for information or assistance.  Sometimes written
  3651.    `advTHANKSance' or `aTdHvAaNnKcSe' or abbreviated `TIA'.  See
  3652.    {net.-}, {netiquette}.
  3653.  
  3654. :That's not a bug, that's a feature!: The {canonical} first
  3655.    parry in a debate about a purported bug.  The complainant, if
  3656.    unconvinced, is likely to retort that the bug is then at best a
  3657.    {misfeature}.  See also {feature}.
  3658.  
  3659. :the X that can be Y is not the true X: Yet another instance of
  3660.    hackerdom's peculiar attraction to mystical references --- a common
  3661.    humorous way of making exclusive statements about a class of
  3662.    things.  The template is from the `Tao te Ching': "The
  3663.    Tao which can be spoken of is not the true Tao."  The implication
  3664.    is often that the X is a mystery accessible only to the
  3665.    enlightened.  See the {trampoline} entry for an example, and
  3666.    compare {has the X nature}.
  3667.  
  3668. :theology: n. 1. Ironically or humorously used to refer to
  3669.    {religious issues}.  2. Technical fine points of an abstruse
  3670.    nature, esp. those where the resolution is of theoretical
  3671.    interest but is relatively {marginal} with respect to actual use of
  3672.    a design or system.  Used esp. around software issues with a
  3673.    heavy AI or language-design component, such as the smart-data vs.
  3674.    smart-programs dispute in AI.
  3675.  
  3676. :theory: n. The consensus, idea, plan, story, or set of rules that
  3677.    is currently being used to inform a behavior.  This is a
  3678.    generalization and abuse of the technical meaning.  "What's the
  3679.    theory on fixing this TECO loss?"  "What's the theory on dinner
  3680.    tonight?"  ("Chinatown, I guess.")  "What's the current theory
  3681.    on letting lusers on during the day?"  "The theory behind this
  3682.    change is to fix the following well-known screw...."
  3683.  
  3684. :thinko: /thing'koh/ [by analogy with `typo'] n. A momentary,
  3685.    correctable glitch in mental processing, especially one involving
  3686.    recall of information learned by rote; a bubble in the stream of
  3687.    consciousness.  Syn. {braino}; see also {brain fart}.
  3688.    Compare {mouso}.
  3689.  
  3690. :This can't happen: Less clipped variant of {can't happen}.
  3691.  
  3692. :This time, for sure!: excl. Ritual affirmation frequently uttered
  3693.    during protracted debugging sessions involving numerous small
  3694.    obstacles (e.g., attempts to bring up a UUCP connection).  For the
  3695.    proper effect, this must be uttered in a fruity imitation of
  3696.    Bullwinkle J. Moose.  Also heard: "Hey, Rocky!  Watch me pull a
  3697.    rabbit out of my hat!"  The {canonical} response is, of course,
  3698.    "But that trick *never* works!"  See {{Humor, Hacker}}.
  3699.  
  3700. :thrash: vi. To move wildly or violently, without accomplishing
  3701.    anything useful.  Paging or swapping systems that are overloaded
  3702.    waste most of their time moving data into and out of core (rather
  3703.    than performing useful computation) and are therefore said to
  3704.    thrash.  Someone who keeps changing his mind (esp. about what to
  3705.    work on next) is said to be thrashing.  A person frantically trying
  3706.    to execute too many tasks at once (and not spending enough time on
  3707.    any single task) may also be described as thrashing.  Compare
  3708.    {multitask}.
  3709.  
  3710. :thread: n. [USENET, GEnie, CompuServe] Common abbreviation of
  3711.    `topic thread', a more or less continuous chain of postings on a
  3712.    single topic.  To `follow a thread' is to read a series of USENET
  3713.    postings sharing a common subject or (more correctly) which are
  3714.    connected by Reference headers.  The better newsreaders present
  3715.    news in thread order.
  3716.  
  3717. :three-finger salute: n. Syn. {Vulcan nerve pinch}.
  3718.  
  3719. :thud: n. 1. Yet another {metasyntactic variable} (see {foo}).
  3720.    It is reported that at CMU from the mid-1970s the canonical series of
  3721.    these was `foo', `bar', `thud', `blat'.  2. Rare term
  3722.    for the hash character, `#' (ASCII 0100011).  See {ASCII} for
  3723.    other synonyms.
  3724.  
  3725. :thumb: n. The slider on a window-system scrollbar.  So called
  3726.    because moving it allows you to browse through the contents of a
  3727.    text window in a way analogous to thumbing through a book.
  3728.  
  3729. :thunk: /thuhnk/ n. 1. "A piece of coding which provides an
  3730.    address", according to P. Z. Ingerman, who invented thunks
  3731.    in 1961 as a way of binding actual parameters to their formal
  3732.    definitions in Algol-60 procedure calls.  If a procedure is called
  3733.    with an expression in the place of a formal parameter, the compiler
  3734.    generates a {thunk} to compute the expression and leave the
  3735.    address of the result in some standard location.  2. Later
  3736.    generalized into: an expression, frozen together with its
  3737.    environment, for later evaluation if and when needed (similar to
  3738.    what in techspeak is called a `closure').  The process of
  3739.    unfreezing these thunks is called `forcing'.  3. A
  3740.    {stubroutine}, in an overlay programming environment, that loads
  3741.    and jumps to the correct overlay.  Compare {trampoline}.
  3742.    4. People and activities scheduled in a thunklike manner.  "It
  3743.    occurred to me the other day that I am rather accurately modeled by
  3744.    a thunk --- I frequently need to be forced to completion." ---
  3745.    paraphrased from a {plan file}.
  3746.  
  3747.    Historical note: There are a couple of onomatopoeic myths
  3748.    circulating about the origin of this term.  The most common is that
  3749.    it is the sound made by data hitting the stack; another holds that
  3750.    the sound is that of the data hitting an accumulator.  Yet another
  3751.    holds that it is the sound of the expression being unfrozen at
  3752.    argument-evaluation time.  In fact, according to the inventors, it
  3753.    was coined after they realized (in the wee hours after hours of
  3754.    discussion) that the type of an argument in Algol-60 could be
  3755.    figured out in advance with a little compile-time thought,
  3756.    simplifying the evaluation machinery.  In other words, it had
  3757.    `already been thought of'; thus it was christened a `thunk',
  3758.    which is "the past tense of `think' at two in the morning".
  3759.  
  3760. :tick: n. 1. A {jiffy} (sense 1).  2. In simulations, the
  3761.    discrete unit of time that passes between iterations of the
  3762.    simulation mechanism.  In AI applications, this amount of time is
  3763.    often left unspecified, since the only constraint of interest is
  3764.    the ordering of events.  This sort of AI simulation is often
  3765.    pejoratively referred to as `tick-tick-tick' simulation,
  3766.    especially when the issue of simultaneity of events with long,
  3767.    independent chains of causes is {handwave}d. 3. In the FORTH
  3768.    language, a single quote character.
  3769.  
  3770. :tick-list features: [Acorn Computers] n. Features in software or
  3771.    hardware that customers insist on but never use (calculators in
  3772.    desktop TSRs and that sort of thing).  The American equivalent
  3773.    would be `checklist features', but this jargon sense of the
  3774.    phrase has not been reported.
  3775.  
  3776. :tickle a bug: vt. To cause a normally hidden bug to manifest
  3777.    through some known series of inputs or operations.  "You can
  3778.    tickle the bug in the Paradise VGA card's highlight handling by
  3779.    trying to set bright yellow reverse video."
  3780.  
  3781. :tiger team: [U.S. military jargon] n. 1. Originally, a team whose
  3782.    purpose is to penetrate security, and thus test security measures.
  3783.    These people are paid professionals who do hacker-type tricks,
  3784.    e.g., leave cardboard signs saying "bomb" in critical defense
  3785.    installations, hand-lettered notes saying "Your codebooks have
  3786.    been stolen" (they usually haven't been) inside safes, etc.  After
  3787.    a successful penetration, some high-ranking security type shows up
  3788.    the next morning for a `security review' and finds the sign,
  3789.    note, etc., and all hell breaks loose.  Serious successes of tiger
  3790.    teams sometimes lead to early retirement for base commanders and
  3791.    security officers (see the {patch} entry for an example).
  3792.    2. Recently, and more generally, any official inspection team or
  3793.    special {firefighting} group called in to look at a problem.
  3794.  
  3795.    A subset of tiger teams are professional {cracker}s, testing the
  3796.    security of military computer installations by attempting remote
  3797.    attacks via networks or supposedly `secure' comm channels.  Some of
  3798.    their escapades, if declassified, would probably rank among the
  3799.    greatest hacks of all times.  The term has been adopted in
  3800.    commercial computer-security circles in this more specific sense.
  3801.  
  3802. :time bomb: n. A subspecies of {logic bomb} that is triggered by
  3803.    reaching some preset time, either once or periodically.  There are
  3804.    numerous legends about time bombs set up by programmers in their
  3805.    employers' machines, to go off if the programmer is fired or laid
  3806.    off and is not present to perform the appropriate suppressing
  3807.    action periodically.
  3808.  
  3809.    Interestingly, the only such incident for which we have been
  3810.    pointed to documentary evidence took place in the Soviet Union in
  3811.    1986!  A disgruntled programmer at the Volga Automobile Plant
  3812.    (where the Fiat clones called Ladas were manufactured) planted a
  3813.    time bomb which, a week after he'd left on vacation, stopped the
  3814.    entire main assembly line for a day.  The case attracted lots of
  3815.    attention in the Soviet Union because it was the first cracking
  3816.    case to make it to court there.  The perpetrator got 3 years in
  3817.    jail.
  3818.  
  3819. :time sink: [poss. by analogy with `heat sink' or `current sink'] n.
  3820.    A project that consumes unbounded amounts of time.
  3821.  
  3822. :time T: /ti:m T/ n. 1. An unspecified but usually well-understood
  3823.    time, often used in conjunction with a later time T+1.
  3824.    "We'll meet on campus at time T or at Louie's at
  3825.    time T+1" means, in the context of going out for dinner:
  3826.    "We can meet on campus and go to Louie's, or we can meet at Louie's
  3827.    itself a bit later."  (Louie's was a Chinese restaurant in Palo Alto
  3828.    that was a favorite with hackers.)  Had the number 30 been used instead
  3829.    of the number 1, it would have implied that the travel time from
  3830.    campus to Louie's is 30 minutes; whatever time T is (and
  3831.    that hasn't been decided on yet), you can meet half an hour later at
  3832.    Louie's than you could on campus and end up eating at the same time.
  3833.    See also {since time T equals minus infinity}.
  3834.  
  3835. :times-or-divided-by: [by analogy with `plus-or-minus'] quant.
  3836.    Term occasionally used when describing the uncertainty associated
  3837.    with a scheduling estimate, for either humorous or brutally honest
  3838.    effect.  For a software project, the scheduling uncertainty factor
  3839.    is usually at least 2.
  3840.  
  3841. :tip of the ice-cube: [IBM] n. The visible part of something small and
  3842.    insignificant.  Used as an ironic comment in situations where `tip
  3843.    of the iceberg' might be appropriate if the subject were at all
  3844.    important.
  3845.  
  3846. :tired iron: [IBM] n. Hardware that is perfectly functional but
  3847.    far enough behind the state of the art to have been superseded by new
  3848.    products, presumably with sufficient improvement in bang-per-buck that
  3849.    the old stuff is starting to look a bit like a {dinosaur}.
  3850.  
  3851. :tits on a keyboard: n. Small bumps on certain keycaps to keep
  3852.    touch-typists registered (usually on the `5' of a numeric
  3853.    keypad, and on the `F' and `J' of a QWERTY keyboard; but
  3854.    the Mac, perverse as usual, has them on the `D' and `K'
  3855.    keys).
  3856.  
  3857. :TLA: /T-L-A/ [Three-Letter Acronym] n. 1. Self-describing
  3858.    abbreviation for a species with which computing terminology is
  3859.    infested.  2. Any confusing acronym.  Examples include MCA, FTP,
  3860.    SNA, CPU, MMU, SCCS, DMU, FPU, NNTP, TLA.  People who like this
  3861.    looser usage argue that not all TLAs have three letters, just as
  3862.    not all four-letter words have four letters.  One also hears of
  3863.    `ETLA' (Extended Three-Letter Acronym, pronounced /ee tee el
  3864.    ay/) being used to describe four-letter acronyms.  The term
  3865.    `SFLA' (Stupid Four-Letter Acronym) has also been reported.  See
  3866.    also {YABA}.
  3867.  
  3868.    The self-effacing phrase "TDM TLA" (Too Damn Many...) is
  3869.    often used to bemoan the plethora of TLAs in use.  In 1989, a
  3870.    random of the journalistic persuasion asked hacker Paul Boutin
  3871.    "What do you think will be the biggest problem in computing in
  3872.    the 90s?"  Paul's straight-faced response: "There are only
  3873.    17,000 three-letter acronyms." (To be exact, there are 26^3
  3874.    = 17,576.)
  3875.  
  3876. :TMRC: /tmerk'/ n. The Tech Model Railroad Club at MIT, one of
  3877.    the wellsprings of hacker culture.  The 1959 `Dictionary of
  3878.    the TMRC Language' compiled by Peter Samson included several terms
  3879.    that became basics of the hackish vocabulary (see esp. {foo},
  3880.    {mung}, and {frob}).
  3881.  
  3882.    By 1962, TMRC's legendary layout was already a marvel of complexity
  3883.    (and has grown in the thirty years since; all the features
  3884.    described here are still present).  The control system alone
  3885.    featured about 1200 relays.  There were {scram switch}es located
  3886.    at numerous places around the room that could be thwacked if
  3887.    something undesirable was about to occur, such as a train going
  3888.    full-bore at an obstruction.  Another feature of the system was a
  3889.    digital clock on the dispatch board, which was itself something of
  3890.    a wonder in those bygone days before cheap LEDS and seven-segment
  3891.    displays (no model railroad can begin to approximate the scale
  3892.    distances between towns and stations, so model railroad timetables
  3893.    assume a fast clock so that it seems to take about the right amount
  3894.    of time for a train to complete its journey).  When someone hit a
  3895.    scram switch the clock stopped and the display was replaced with the
  3896.    word `FOO'; at TMRC the scram switches are therefore called `foo
  3897.    switches'.
  3898.  
  3899.    Steven Levy, in his book `Hackers' (see the Bibliography in
  3900.    {Appendix C}), gives a stimulating account of those early
  3901.    years.  TMRC's Power and Signals group included most of the early
  3902.    PDP-1 hackers and the people who later bacame the core of the MIT
  3903.    AI Lab staff.  Thirty years later that connection is still very
  3904.    much alive, and this lexicon accordingly includes a number of
  3905.    entries from a recent revision of the TMRC dictionary.
  3906.  
  3907. :TMRCie: /tmerk'ee/, [MIT] n. A denizen of {TMRC}.
  3908.  
  3909. :to a first approximation: 1. [techspeak] When one is doing certain
  3910.    numerical computations, an approximate solution may be computed by
  3911.    any of several heuristic methods, then refined to a final value.
  3912.    By using the starting point of a first approximation of the answer,
  3913.    one can write an algorithm that converges more quickly to the
  3914.    correct result.  2. In jargon, a preface to any comment that
  3915.    indicates that the comment is only approximately true.  The remark
  3916.    "To a first approximation, I feel good" might indicate that
  3917.    deeper questioning would reveal that not all is perfect (e.g., a
  3918.    nagging cough still remains after an illness).
  3919.  
  3920. :to a zeroth approximation: [from `to a first approximation'] A
  3921.    *really* sloppy approximation; a wild guess.  Compare
  3922.    {social science number}.
  3923.  
  3924. :toast: 1. n. Any completely inoperable system or component, esp.
  3925.    one that has just crashed and burned: "Uh, oh ... I think the
  3926.    serial board is toast."  2. vt. To cause a system to crash
  3927.    accidentally, especially in a manner that requires manual
  3928.    rebooting.  "Rick just toasted the {firewall machine} again."
  3929.  
  3930. :toaster: n. 1. The archetypal really stupid application for an
  3931.    embedded microprocessor controller; often used in comments that
  3932.    imply that a scheme is inappropriate technology (but see
  3933.    {elevator controller}).  "{DWIM} for an assembler?  That'd be
  3934.    as silly as running UNIX on your toaster!"  2. A very, very dumb
  3935.    computer. "You could run this program on any dumb toaster."  See
  3936.    {bitty box}, {Get a real computer!}, {toy}, {beige toaster}.
  3937.    3. A Macintosh, esp. the Classic Mac.  Some hold that this is
  3938.    implied by sense 2.  4. A peripheral device.  "I bought my box
  3939.    without toasters, but since then I've added two boards and a second
  3940.    disk drive."
  3941.  
  3942. :toeprint: n. A {footprint} of especially small size.
  3943.  
  3944. :toggle: vt. To change a {bit} from whatever state it is in to the
  3945.    other state; to change from 1 to 0 or from 0 to 1.  This comes from
  3946.    `toggle switches', such as standard light switches, though the
  3947.    word `toggle' actually refers to the mechanism that keeps the
  3948.    switch in the position to which it is flipped rather than to the
  3949.    fact that the switch has two positions.  There are four things you
  3950.    can do to a bit: set it (force it to be 1), clear (or zero) it,
  3951.    leave it alone, or toggle it.  (Mathematically, one would say that
  3952.    there are four distinct boolean-valued functions of one boolean
  3953.    argument, but saying that is much less fun than talking about
  3954.    toggling bits.)
  3955.  
  3956. :tool: 1. n. A program used primarily to create, manipulate, modify,
  3957.    or analyze other programs, such as a compiler or an editor or a
  3958.    cross-referencing program.  Oppose {app}, {operating system}.
  3959.    2. [UNIX] An application program with a simple, `transparent'
  3960.    (typically text-stream) interface designed specifically to be used
  3961.    in programmed combination with other tools (see {filter}).
  3962.    3. [MIT: general to students there] vi. To work; to study (connotes
  3963.    tedium).  The TMRC Dictionary defined this as "to set one's brain
  3964.    to the grindstone".  See {hack}.  4. [MIT] n. A student who
  3965.    studies too much and hacks too little.  (MIT's student humor
  3966.    magazine rejoices in the name `Tool and Die'.)
  3967.  
  3968. :toolsmith: n. The software equivalent of a tool-and-die
  3969.    specialist; one who specializes in making the {tool}s with which
  3970.    other programmers create applications.  Many hackers consider this
  3971.    more fun than applications per se; to understand why, see
  3972.    {uninteresting}.  Jon Bentley, in the "Bumper-Sticker Computer
  3973.    Science" chapter of his book `More Programming Pearls',
  3974.    quotes Dick Sites from DEC as saying "I'd rather write programs to
  3975.    write programs than write programs".
  3976.  
  3977. :topic drift: n. Term used on GEnie, USENET and other electronic
  3978.    fora to describe the tendency of a {thread} to drift away from
  3979.    the original subject of discussion (and thus, from the Subject
  3980.    header of the originating message), or the results of that
  3981.    tendency.  Often used in gentle reminders that the discussion has
  3982.    strayed off any useful track.  "I think we started with a question
  3983.    about Niven's last book, but we've ended up discussing the sexual
  3984.    habits of the common marmoset.  Now *that's* topic drift!"
  3985.  
  3986. :topic group: n. Syn. {forum}.
  3987.  
  3988. :TOPS-10:: /tops-ten/ n. DEC's proprietary OS for the fabled {PDP-10}
  3989.    machines, long a favorite of hackers but now effectively extinct.
  3990.    A fountain of hacker folklore; see {Appendix A}.  See also {{ITS}},
  3991.    {{TOPS-20}}, {{TWENEX}}, {VMS}, {operating system}.  TOPS-10 was
  3992.    sometimes called BOTS-10 (from `bottoms-ten') as a comment on the
  3993.    inappropriateness of describing it as the top of anything.
  3994.  
  3995. :TOPS-20:: /tops-twen'tee/ n. See {{TWENEX}}.
  3996.  
  3997. :toto: /toh'toh/ n. This is reported to be the default scratch
  3998.    file name among French-speaking programmers --- in other words, a
  3999.    francophone {foo}.  It is reported that the phonetic mutations
  4000.    "titi", "tata", and "tutu" canonically follow `toto',
  4001.    analogously to {bar}, {baz} and {quux} in English.
  4002.  
  4003. :tourist: [ITS] n. A guest on the system, especially one who
  4004.    generally logs in over a network from a remote location for {comm
  4005.    mode}, email, games, and other trivial purposes.  One step below
  4006.    {luser}.  Hackers often spell this {turist}, perhaps by
  4007.    some sort of tenuous analogy with {luser} (this also expresses the
  4008.    ITS culture's penchant for six-letterisms).  Compare {twink},
  4009.    {read-only user}.
  4010.  
  4011. :tourist information: n. Information in an on-line display that is
  4012.    not immediately useful, but contributes to a viewer's gestalt of
  4013.    what's going on with the software or hardware behind it.  Whether a
  4014.    given piece of info falls in this category depends partly on what
  4015.    the user is looking for at any given time.  The `bytes free'
  4016.    information at the bottom of an MS-DOS `dir' display is
  4017.    tourist information; so (most of the time) is the TIME information
  4018.    in a UNIX `ps(1)' display.
  4019.  
  4020. :touristic: adj. Having the quality of a {tourist}.  Often used
  4021.    as a pejorative, as in `losing touristic scum'.  Often spelled
  4022.    `turistic' or `turistik', so that phrase might be more properly
  4023.    rendered `lusing turistic scum'.
  4024.  
  4025. :toy: n. A computer system; always used with qualifiers.
  4026.    1. `nice toy': One that supports the speaker's hacking style
  4027.    adequately.  2. `just a toy': A machine that yields
  4028.    insufficient {computron}s for the speaker's preferred uses.  This
  4029.    is not condemnatory, as is {bitty box}; toys can at least be fun.
  4030.    It is also strongly conditioned by one's expectations; Cray XMP
  4031.    users sometimes consider the Cray-1 a `toy', and certainly all RISC
  4032.    boxes and mainframes are toys by their standards.  See also {Get
  4033.    a real computer!}.
  4034.  
  4035. :toy language: n. A language useful for instructional purposes or
  4036.    as a proof-of-concept for some aspect of computer-science theory,
  4037.    but inadequate for general-purpose programming.  {Bad Thing}s
  4038.    can result when a toy language is promoted as a general purpose
  4039.    solution for programming (see {bondage-and-discipline
  4040.    language}); the classic example is {{Pascal}}.  Several moderately
  4041.    well-known formalisms for conceptual tasks such as programming Turing
  4042.    machines also qualify as toy languages in a less negative sense.
  4043.    See also {MFTL}.
  4044.  
  4045. :toy problem: [AI] n. A deliberately oversimplified case of a
  4046.    challenging problem used to investigate, prototype, or test
  4047.    algorithms for a real problem.  Sometimes used pejoratively.  See
  4048.    also {gedanken}, {toy program}.
  4049.  
  4050. :toy program: n. 1. One that can be readily comprehended; hence, a
  4051.    trivial program (compare {noddy}).  2. One for which the effort
  4052.    of initial coding dominates the costs through its life cycle.
  4053.    See also {noddy}.
  4054.  
  4055. :trampoline: n. An incredibly {hairy} technique, found in some
  4056.    {HLL} and program-overlay implementations (e.g., on the
  4057.    Macintosh), that involves on-the-fly generation of small executable
  4058.    (and, likely as not, self-modifying) code objects to do indirection
  4059.    between code sections.  These pieces of {live data} are called
  4060.    `trampolines'.  Trampolines are notoriously difficult to understand
  4061.    in action; in fact, it is said by those who use this term that the
  4062.    trampoline that doesn't bend your brain is not the true
  4063.    trampoline.  See also {snap}.
  4064.  
  4065. :trap: 1. n. A program interrupt, usually an interrupt caused by
  4066.    some exceptional situation in the user program.  In most cases, the
  4067.    OS performs some action, then returns control to the program.
  4068.    2. vi. To cause a trap.  "These instructions trap to the
  4069.    monitor."  Also used transitively to indicate the cause of the
  4070.    trap.  "The monitor traps all input/output instructions."
  4071.  
  4072.    This term is associated with assembler programming (`interrupt'
  4073.    or `exception' is more common among {HLL} programmers) and
  4074.    appears to be fading into history among programmers as the role of
  4075.    assembler continues to shrink.  However, it is still important to
  4076.    computer architects and systems hackers (see {system},
  4077.    sense 1), who use it to distinguish deterministically repeatable
  4078.    exceptions from timing-dependent ones (such as I/O interrupts).
  4079.  
  4080. :trap door: alt. `trapdoor' n. 1. Syn. {back door} --- a
  4081.    {Bad Thing}.  2. [techspeak] A `trap-door function' is one
  4082.    which is easy to compute but very difficult to compute the inverse
  4083.    of.  Such functions are {Good Thing}s with important
  4084.    applications in cryptography, specifically in the construction of
  4085.    public-key cryptosystems.
  4086.  
  4087. :trash: vt. To destroy the contents of (said of a data structure).
  4088.    The most common of the family of near-synonyms including {mung},
  4089.    {mangle}, and {scribble}.
  4090.  
  4091. :trawl: v. To sift through large volumes of data (e.g., USENET
  4092.    postings, FTP archives, or the Jargon File) looking for something
  4093.    of interest.
  4094.  
  4095. :tree-killer: [Sun] n. 1. A printer.  2. A person who wastes paper.
  4096.    This should be interpreted in a broad sense; `wasting paper'
  4097.    includes the production of {spiffy} but {content-free}
  4098.    documents.  Thus, most {suit}s are tree-killers.  The negative
  4099.    loading of this term may reflect the epithet `tree-killer'
  4100.    applied by Treebeard the Ent to the Orcs in J.R.R. Tolkien's
  4101.    `Lord of the Rings' (see also {elvish}, {elder
  4102.    days}).
  4103.  
  4104. :treeware: n. Printouts, books, and other information media made
  4105.    from pulped dead trees.  Compare {tree-killer}, see
  4106.    {documentation}.
  4107.  
  4108. :trit: /trit/ [by analogy with `bit'] n. One base-3 digit; the
  4109.    amount of information conveyed by a selection among one of three
  4110.    equally likely outcomes (see also {bit}).  These arise, for
  4111.    example, in the context of a {flag} that should actually be able
  4112.    to assume *three* values --- such as yes, no, or unknown.  Trits are
  4113.    sometimes jokingly called `3-state bits'.  A trit may be
  4114.    semi-seriously referred to as `a bit and a half', although it is
  4115.    linearly equivalent to 1.5849625 bits (that is,
  4116.    log2(3)
  4117.    bits).
  4118.  
  4119. :trivial: adj. 1. Too simple to bother detailing.  2. Not worth the
  4120.    speaker's time.  3. Complex, but solvable by methods so well known
  4121.    that anyone not utterly {cretinous} would have thought of them
  4122.    already.  4. Any problem one has already solved (some claim that
  4123.    hackish `trivial' usually evaluates to `I've seen it before').
  4124.    Hackers' notions of triviality may be quite at variance with those
  4125.    of non-hackers.  See {nontrivial}, {uninteresting}.
  4126.  
  4127. :troff:: /tee'rof/ or /trof/ [UNIX] n. The gray eminence of UNIX
  4128.    text processing; a formatting and phototypesetting program, written
  4129.    originally in PDP-11 assembler and then in barely-structured early
  4130.    C by the late Joseph Ossanna, modeled after the earlier ROFF which
  4131.    was in turn modeled after Multics' RUNOFF by Jerome Saltzer
  4132.    (*that* name came from the expression "to run off a copy").  A
  4133.    companion program, `nroff', formats output for terminals and
  4134.    line printers.
  4135.  
  4136.    In 1979, Brian Kernighan modified `troff' so that it could
  4137.    drive phototypesetters other than the Graphic Systems CAT.  His
  4138.    paper describing that work ("A Typesetter-independent troff,"
  4139.    AT&T CSTR #97) explains troff's durability.  After discussing the
  4140.    program's "obvious deficiencies --- a rebarbative input syntax,
  4141.    mysterious and undocumented properties in some areas, and a
  4142.    voracious appetite for computer resources" and noting the ugliness
  4143.    and extreme hairiness of the code and internals, Kernighan
  4144.    concludes:
  4145.  
  4146.      None of these remarks should be taken as denigrating
  4147.      Ossanna's accomplishment with TROFF.  It has proven a
  4148.      remarkably robust tool, taking unbelievable abuse from a
  4149.      variety of preprocessors and being forced into uses that
  4150.      were never conceived of in the original design, all with
  4151.      considerable grace under fire.
  4152.  
  4153.    The success of {{TeX}} and desktop publishing systems have
  4154.    reduced `troff''s relative importance, but this tribute
  4155.    perfectly captures the strengths that secured `troff' a place
  4156.    in hacker folklore; indeed, it could be taken more generally as an
  4157.    indication of those qualities of good programs that, in the long
  4158.    run, hackers most admire.
  4159.  
  4160. :troglodyte: [Commodore] n. 1. A hacker who never leaves his
  4161.    cubicle.  The term `Gnoll' (from Dungeons & Dragons) is also
  4162.    reported.  2. A curmudgeon attached to an obsolescent computing
  4163.    environment.  The combination `ITS troglodyte' was flung around
  4164.    some during the USENET and email wringle-wrangle attending the
  4165.    2.x.x revision of the Jargon File; at least one of the people it
  4166.    was intended to describe adopted it with pride.
  4167.  
  4168. :troglodyte mode: [Rice University] n. Programming with the lights
  4169.    turned off, sunglasses on, and the terminal inverted (black on
  4170.    white) because you've been up for so many days straight that your
  4171.    eyes hurt (see {raster burn}).  Loud music blaring from a stereo
  4172.    stacked in the corner is optional but recommended.  See {larval
  4173.    stage}, {hack mode}.
  4174.  
  4175. :Trojan horse: [coined by MIT-hacker-turned-NSA-spook Dan Edwards]
  4176.    n. A program designed to break security or damage a system that is
  4177.    disguised as something else benign, such as a directory lister,
  4178.    archiver, a game, or (in one notorious 1990 case on the Mac) a
  4179.    program to find and destroy viruses!  See {back door}, {virus},
  4180.    {worm}, {phage}, {mockingbird}.
  4181.  
  4182. :tron: [NRL, CMU; prob. fr. the movie `Tron'] v. To become
  4183.    inaccessible except via email or `talk(1)', especially when
  4184.    one is normally available via telephone or in person.  Frequently
  4185.    used in the past tense, as in: "Ran seems to have tronned on us
  4186.    this week" or "Gee, Ran, glad you were able to un-tron
  4187.    yourself".  One may also speak of `tron mode'; compare
  4188.    {spod}.
  4189.  
  4190. :true-hacker: [analogy with `trufan' from SF fandom] n. One who
  4191.    exemplifies the primary values of hacker culture, esp. competence
  4192.    and helpfulness to other hackers.  A high compliment.  "He spent
  4193.    6 hours helping me bring up UUCP and netnews on my FOOBAR 4000
  4194.    last week --- manifestly the act of a true-hacker."  Compare
  4195.    {demigod}, oppose {munchkin}.
  4196.  
  4197. :tty: /T-T-Y/ [UNIX], /tit'ee/ [ITS, but some UNIX people say it
  4198.    this way as well; this pronunciation is not considered to have
  4199.    sexual undertones] n. 1. A terminal of the teletype variety,
  4200.    characterized by a noisy mechanical printer, a very limited
  4201.    character set, and poor print quality.  Usage: antiquated (like the
  4202.    TTYs themselves).  See also {bit-paired keyboard}.
  4203.    2. [especially UNIX] Any terminal at all; sometimes used to refer
  4204.    to the particular terminal controlling a given job.  3. [UNIX] Any
  4205.    serial port, whether or not the device connected to it is a
  4206.    terminal; so called because under UNIX such devices have names of
  4207.    the form tty*.  Ambiguity between senses 2 and 3 is common but
  4208.    seldom bothersome.
  4209.  
  4210. :tube: 1. n. A CRT terminal.  Never used in the mainstream sense of
  4211.    TV; real hackers don't watch TV, except for Loony Toons, Rocky &
  4212.    Bullwinkle, Trek Classic, the Simpsons, and the occasional cheesy
  4213.    old swashbuckler movie (see {Appendix B}).  2. [IBM] To send
  4214.    a copy of something to someone else's terminal.  "Tube me that
  4215.    note?"
  4216.  
  4217. :tube time: n. Time spent at a terminal or console.  More inclusive
  4218.    than hacking time; commonly used in discussions of what parts of
  4219.    one's environment one uses most heavily.  "I find I'm spending too
  4220.    much of my tube time reading mail since I started this revision."
  4221.  
  4222. :tunafish: n. In hackish lore, refers to the mutated punchline of
  4223.    an age-old joke to be found at the bottom of the manual pages of
  4224.    `tunefs(8)' in the original {BSD} 4.2 distribution.  The
  4225.    joke was removed in later releases once commercial sites started
  4226.    using 4.2.  Tunefs relates to the `tuning' of file-system
  4227.    parameters for optimum performance, and at the bottom of a few
  4228.    pages of wizardly inscriptions was a `BUGS' section consisting of
  4229.    the line "You can tune a file system, but you can't tunafish".
  4230.    Variants of this can be seen in other BSD versions, though it has
  4231.    been excised from some versions by humorless management
  4232.    {droid}s.  The [nt]roff source for SunOS 4.1.1 contains a
  4233.    comment apparently designed to prevent this: "Take this out and a
  4234.    Unix Demon will dog your steps from now until the `time_t''s
  4235.    wrap around."
  4236.  
  4237. :tune: [from automotive or musical usage] vt. To optimize a program
  4238.    or system for a particular environment, esp. by adjusting numerical
  4239.    parameters designed as {hook}s for tuning, e.g., by changing
  4240.    `#define' lines in C.  One may `tune for time' (fastest
  4241.    execution), `tune for space' (least memory use), or
  4242.    `tune for configuration' (most efficient use of hardware).  See
  4243.    {bum}, {hot spot}, {hand-hacking}.
  4244.  
  4245. :turbo nerd: n. See {computer geek}.
  4246.  
  4247. :Turing tar-pit: n. 1. A place where anything is possible but
  4248.    nothing of interest is practical.  Alan Turing helped lay the
  4249.    foundations of computer science by showing that all machines and
  4250.    languages capable of expressing a certain very primitive set of
  4251.    operations are logically equivalent in the kinds of computations
  4252.    they can carry out, and in principle have capabilities that differ
  4253.    only in speed from those of the most powerful and elegantly
  4254.    designed computers.  However, no machine or language exactly
  4255.    matching Turing's primitive set has ever been built (other than
  4256.    possibly as a classroom exercise), because it would be horribly
  4257.    slow and far too painful to use.  A `Turing tar-pit' is any
  4258.    computer language or other tool that shares this property.  That
  4259.    is, it's theoretically universal --- but in practice, the harder
  4260.    you struggle to get any real work done, the deeper its inadequacies
  4261.    suck you in.  Compare {bondage-and-discipline language}.  2. The
  4262.    perennial {holy wars} over whether language A or B is the "most
  4263.    powerful".
  4264.  
  4265. :turist: /too'rist/ n. Var. sp. of {tourist}, q.v.  Also in
  4266.    adjectival form, `turistic'.  Poss. influenced by {luser} and
  4267.    `Turing'.
  4268.  
  4269. :tweak: vt. 1. To change slightly, usually in reference to a
  4270.    value.  Also used synonymously with {twiddle}.  If a program is
  4271.    almost correct, rather than figure out the precise problem you
  4272.    might just keep tweaking it until it works.  See {frobnicate}
  4273.    and {fudge factor}; also see {shotgun debugging}.  2. To
  4274.    {tune} or {bum} a program; preferred usage in the U.K.
  4275.  
  4276. :tweeter: [University of Waterloo] n. Syn. {perf}, {chad}
  4277.    (sense 1).  This term (like {woofer}) has been in use at
  4278.    Waterloo since 1972 but is elsewhere unknown.  In audio jargon, the
  4279.    word refers to the treble speaker(s) on a hi-fi.
  4280.  
  4281. :TWENEX:: /twe'neks/ n. The TOPS-20 operating system by DEC ---
  4282.    the second proprietary OS for the PDP-10 --- preferred by most
  4283.    PDP-10 hackers over TOPS-10 (that is, by those who were not
  4284.    {{ITS}} or {{WAITS}} partisans).  TOPS-20 began in 1969 as Bolt,
  4285.    Beranek & Newman's TENEX operating system using special paging
  4286.    hardware.  By the early 1970s, almost all of the systems on the
  4287.    ARPANET ran TENEX.  DEC purchased the rights to TENEX from BBN and
  4288.    began work to make it their own.  The first in-house code name for
  4289.    the operating system was VIROS (VIRtual memory Operating System);
  4290.    when customers started asking questions, the name was changed to
  4291.    SNARK so DEC could truthfully deny that there was any project
  4292.    called VIROS.  When the name SNARK became known, the name was
  4293.    briefly reversed to become KRANS; this was quickly abandoned when
  4294.    someone objected that `krans' meant `funeral wreath' in Swedish
  4295.    (though some Swedish speakers have since said it means simply
  4296.    `wreath'; this part of the story may be apocryphal).  Ultimately
  4297.    DEC picked TOPS-20 as the name of the operating system, and it was
  4298.    as TOPS-20 that it was marketed.  The hacker community, mindful of
  4299.    its origins, quickly dubbed it {{TWENEX}} (a contraction of
  4300.    `twenty TENEX'), even though by this point very little of the
  4301.    original TENEX code remained (analogously to the differences
  4302.    between AT&T V6 UNIX and BSD).  DEC people cringed when they heard
  4303.    "TWENEX", but the term caught on nevertheless (the written
  4304.    abbreviation `20x' was also used).  TWENEX was successful and
  4305.    very popular; in fact, there was a period in the early 1980s when
  4306.    it commanded as fervent a culture of partisans as UNIX or ITS ---
  4307.    but DEC's decision to scrap all the internal rivals to the VAX
  4308.    architecture and its relatively stodgy VMS OS killed the DEC-20 and
  4309.    put a sad end to TWENEX's brief day in the sun.  DEC attempted to
  4310.    convince TOPS-20 hackers to convert to {VMS}, but instead, by
  4311.    the late 1980s, most of the TOPS-20 hackers had migrated to UNIX.
  4312.  
  4313. :twiddle: n. 1. Tilde (ASCII 1111110, `~').  Also
  4314.    called `squiggle', `sqiggle' (sic --- pronounced /skig'l/),
  4315.    and `twaddle', but twiddle is the most common term.  2. A small
  4316.    and insignificant change to a program.  Usually fixes one bug and
  4317.    generates several new ones.  3. vt. To change something in a small
  4318.    way.  Bits, for example, are often twiddled.  Twiddling a switch or
  4319.    knob implies much less sense of purpose than toggling or tweaking
  4320.    it; see {frobnicate}.  To speak of twiddling a bit connotes
  4321.    aimlessness, and at best doesn't specify what you're doing to the
  4322.    bit; `toggling a bit' has a more specific meaning (see {bit
  4323.    twiddling}, {toggle}).
  4324.  
  4325. :twilight zone: [IRC] n. Notionally, the area of cyberspace where {IRC}
  4326.    operators live.  An {op} is said to have a "connection to the
  4327.    twilight zone".
  4328.    
  4329. :twink: /twink/ [UCSC] n. Equivalent to {read-only user}.
  4330.    Also reported on the USENET group soc.motss; may derive from
  4331.    gay slang for a cute young thing with nothing upstairs (compare
  4332.    mainstream `chick').
  4333.  
  4334. :two pi: quant. The number of years it takes to finish one's
  4335.    thesis.  Occurs in stories in the following form: "He started on
  4336.    his thesis; 2 pi years later..."
  4337.  
  4338. :two-to-the-N: quant. An amount much larger than {N} but smaller
  4339.    than {infinity}.  "I have 2-to-the-N things to do before I can
  4340.    go out for lunch" means you probably won't show up.
  4341.  
  4342. :twonkie: /twon'kee/ n. The software equivalent of a Twinkie (a
  4343.    variety of sugar-loaded junk food, or (in gay slang) the male
  4344.    equivalent of `chick'); a useless `feature' added to look sexy
  4345.    and placate a {marketroid} (compare {Saturday-night
  4346.    special}).  This may also be related to "The Twonky", title
  4347.    menace of a classic SF short story by Lewis Padgett (Henry Kuttner
  4348.    and C. L. Moore), first published in the September 1942
  4349.    `Astounding Science Fiction' and subsequently much
  4350.    anthologized.
  4351.  
  4352. = U =
  4353. =====
  4354.  
  4355. :UBD: /U-B-D/ [abbreviation for `User Brain Damage'] An
  4356.    abbreviation used to close out trouble reports obviously due to
  4357.    utter cluelessness on the user's part.  Compare {pilot error};
  4358.    oppose {PBD}; see also {brain-damaged}.
  4359.  
  4360. :UN*X: n. Used to refer to the UNIX operating system (a trademark of
  4361.    AT&T) in writing, but avoiding the need for the ugly
  4362.    {(TM)} typography.
  4363.    Also used to refer to any or all varieties of Unixoid operating
  4364.    systems.  Ironically, lawyers now say that the requirement for the
  4365.    TM-postfix has no legal force, but the asterisk usage is
  4366.    entrenched anyhow.  It has been suggested that there may be a
  4367.    psychological connection to practice in certain religions
  4368.    (especially Judaism) in which the name of the deity is never
  4369.    written out in full, e.g., `YHWH' or `G--d' is used.  See also
  4370.    {glob}.
  4371.  
  4372. :undefined external reference: excl. [UNIX] A message from UNIX's
  4373.    linker.  Used in speech to flag loose ends or dangling references
  4374.    in an argument or discussion.
  4375.  
  4376. :under the hood: prep. [hot-rodder talk] 1. Used to introduce the
  4377.    underlying implementation of a product (hardware, software, or
  4378.    idea).  Implies that the implementation is not intuitively obvious
  4379.    from the appearance, but the speaker is about to enable the
  4380.    listener to {grok} it.  "Let's now look under the hood to see
  4381.    how ...." 2. Can also imply that the implementation is much
  4382.    simpler than the appearance would indicate: "Under the hood, we
  4383.    are just fork/execing the shell."  3. Inside a chassis, as in
  4384.    "Under the hood, this baby has a 40MHz 68030!"
  4385.  
  4386. :undocumented feature: n. See {feature}.
  4387.  
  4388. :uninteresting: adj. 1. Said of a problem that, although
  4389.    {nontrivial}, can be solved simply by throwing sufficient
  4390.    resources at it.  2. Also said of problems for which a solution
  4391.    would neither advance the state of the art nor be fun to design and
  4392.    code.
  4393.  
  4394.    Hackers regard uninteresting problems as intolerable wastes of
  4395.    time, to be solved (if at all) by lesser mortals.  *Real*
  4396.    hackers (see {toolsmith}) generalize uninteresting problems
  4397.    enough to make them interesting and solve them --- thus solving the
  4398.    original problem as a special case (and, it must be admitted,
  4399.    occasionally turning a molehill into a mountain, or a mountain into
  4400.    a tectonic plate).  See {WOMBAT}, {SMOP}; compare {toy
  4401.    problem}, oppose {interesting}.
  4402.  
  4403. :UNIX:: /yoo'niks/ [In the authors' words, "A weak pun on
  4404.    Multics"] n. (also `Unix') An interactive time-sharing system
  4405.    originally invented in 1969 by Ken Thompson after Bell Labs left
  4406.    the Multics project, originally so he could play games on his
  4407.    scavenged PDP-7.  Dennis Ritchie, the inventor of C, is considered
  4408.    a co-author of the system.  The turning point in UNIX's history
  4409.    came when it was reimplemented almost entirely in C during
  4410.    1972--1974, making it the first source-portable OS.  UNIX
  4411.    subsequently underwent mutations and expansions at the hands of
  4412.    many different people, resulting in a uniquely flexible and
  4413.    developer-friendly environment.  By 1991, UNIX was the most widely
  4414.    used multiuser general-purpose operating system in the world.  Many
  4415.    people consider this the most important victory yet of hackerdom
  4416.    over industry opposition (but see {UNIX weenie} and {UNIX
  4417.    conspiracy} for an opposing point of view).  See {Version 7},
  4418.    {BSD}, {USG UNIX}.
  4419.  
  4420. :UNIX brain damage: n. Something that has to be done to break a  
  4421.    network program (typically a mailer) on a non-UNIX system so that
  4422.    it will interoperate with UNIX systems. The hack may qualify as
  4423.    `UNIX brain damage' if the program conforms to published standards
  4424.    and the UNIX program in question does not.  UNIX brain damage
  4425.    happens because it is much easier for other (minority) systems to
  4426.    change their ways to match non-conforming behavior than it is to
  4427.    change all the hundreds of thousands of UNIX systems out there.
  4428.  
  4429.    An example of UNIX brain damage is a {kluge} in a mail server to 
  4430.    recognize bare line feed (the UNIX newline) as an equivalent form
  4431.    to the Internet standard newline, which is a carriage return
  4432.    followed by a line feed.  Such things can make even a hardened
  4433.    {jock} weep.
  4434.  
  4435. :UNIX conspiracy: [ITS] n. According to a conspiracy theory long
  4436.    popular among {{ITS}} and {{TOPS-20}} fans, UNIX's growth is the
  4437.    result of a plot, hatched during the 1970s at Bell Labs, whose
  4438.    intent was to hobble AT&T's competitors by making them dependent
  4439.    upon a system whose future evolution was to be under AT&T's
  4440.    control.  This would be accomplished by disseminating an operating
  4441.    system that is apparently inexpensive and easily portable, but also
  4442.    relatively unreliable and insecure (so as to require continuing
  4443.    upgrades from AT&T).  This theory was lent a substantial impetus
  4444.    in 1984 by the paper referenced in the {back door} entry.
  4445.  
  4446.    In this view, UNIX was designed to be one of the first computer
  4447.    viruses (see {virus}) --- but a virus spread to computers indirectly
  4448.    by people and market forces, rather than directly through disks and
  4449.    networks.  Adherents of this `UNIX virus' theory like to cite the
  4450.    fact that the well-known quotation "UNIX is snake oil" was
  4451.    uttered by DEC president Kenneth Olsen shortly before DEC began
  4452.    actively promoting its own family of UNIX workstations.  (Olsen now
  4453.    claims to have been misquoted.)
  4454.  
  4455. :UNIX weenie: [ITS] n. 1. A derogatory play on `UNIX wizard',
  4456.    common among hackers who use UNIX by necessity but would prefer
  4457.    alternatives.  The implication is that although the person in
  4458.    question may consider mastery of UNIX arcana to be a wizardly
  4459.    skill, the only real skill involved is the ability to tolerate (and
  4460.    the bad taste to wallow in) the incoherence and needless complexity
  4461.    that is alleged to infest many UNIX programs.  "This shell script
  4462.    tries to parse its arguments in 69 bletcherous ways.  It must have
  4463.    been written by a real UNIX weenie."  2. A derogatory term for
  4464.    anyone who engages in uncritical praise of UNIX.  Often appearing
  4465.    in the context "stupid UNIX weenie".  See {Weenix}, {UNIX
  4466.    conspiracy}.  See also {weenie}.
  4467.  
  4468. :unixism: n. A piece of code or a coding technique that depends on
  4469.    the protected multi-tasking environment with relatively low
  4470.    process-spawn overhead that exists on virtual-memory UNIX systems.
  4471.    Common {unixism}s include: gratuitous use of `fork(2)'; the
  4472.    assumption that certain undocumented but well-known features of
  4473.    UNIX libraries such as `stdio(3)' are supported elsewhere;
  4474.    reliance on {obscure} side-effects of system calls (use of
  4475.    `sleep(2)' with a 0 argument to clue the scheduler that you're
  4476.    willing to give up your time-slice, for example); the assumption
  4477.    that freshly allocated memory is zeroed; and the assumption that
  4478.    fragmentation problems won't arise from never `free()'ing
  4479.    memory.  Compare {vaxocentrism}; see also {New Jersey}.
  4480.  
  4481. :unleaded: adj. Said of decaffeinated coffee, Diet Coke, and other
  4482.    imitation {programming fluid}s.  "Do you want regular or
  4483.    unleaded?"  Appears to be widespread among programmers associated
  4484.    with the oil industry in Texas (and probably elsewhere).  Usage:
  4485.    silly, and probably unintelligible to the next generation of
  4486.    hackers.
  4487.  
  4488. :unroll: v. To repeat the body of a loop several times in succession.
  4489.    This optimization technique reduces the number of times the
  4490.    loop-termination test has to be executed.  But it only works if
  4491.    the number of iterations desired is a multiple of the number of
  4492.    repetitions of the body.  Something has to be done to take care
  4493.    of any leftover iterations --- such as {Duff's device}.
  4494.  
  4495. :unswizzle: v. See {swizzle}.
  4496.  
  4497. :unwind the stack: vi. 1. [techspeak] During the execution of a
  4498.    procedural language, one is said to `unwind the stack' from a
  4499.    called procedure up to a caller when one discards the stack frame
  4500.    and any number of frames above it, popping back up to the level of
  4501.    the given caller.  In C this is done with
  4502.    `longjmp'/`setjmp', in LISP with `throw/catch'.
  4503.    See also {smash the stack}.  2. People can unwind the stack as
  4504.    well, by quickly dealing with a bunch of problems: "Oh heck, let's
  4505.    do lunch.  Just a second while I unwind my stack."
  4506.  
  4507. :unwind-protect: [MIT: from the name of a LISP operator] n. A task you
  4508.    must remember to perform before you leave a place or finish a
  4509.    project.  "I have an unwind-protect to call my advisor."
  4510.  
  4511. :up: adj. 1. Working, in order.  "The down escalator is up."
  4512.    Oppose {down}.  2. `bring up': vt. To create a working
  4513.    version and start it.  "They brought up a down system." 
  4514.    3. `come up' vi. To become ready for production use.
  4515.  
  4516. :upload: /uhp'lohd/ v. 1. [techspeak] To transfer programs or
  4517.    data over a digital communications link from a smaller or
  4518.    peripheral `client' system to a larger or central `host'
  4519.    one.  A transfer in the other direction is, of course, called a
  4520.    {download} (but see the note about ground-to-space comm under
  4521.    that entry).  2. [speculatively] To move the essential patterns and
  4522.    algorithms that make up one's mind from one's brain into a
  4523.    computer.  Those who are convinced that such patterns and
  4524.    algorithms capture the complete essence of the self view this
  4525.    prospect with approbation.
  4526.  
  4527. :upthread: adv. Earlier in the discussion (see {thread}), i.e.,
  4528.    `above'. "As Joe pointed out upthread, ..."  See also
  4529.    {followup}.
  4530.  
  4531. :urchin: n. See {munchkin}.
  4532.  
  4533. :USENET: /yoos'net/ or /yooz'net/ [from `Users' Network'] n.
  4534.    A distributed {bboard} (bulletin board) system supported mainly
  4535.    by UNIX machines.  Originally implemented in 1979--1980 by Steve
  4536.    Bellovin, Jim Ellis, Tom Truscott, and Steve Daniel at Duke
  4537.    University, it has swiftly grown to become international in scope
  4538.    and is now probably the largest decentralized information utility
  4539.    in existence.  As of early 1993, it hosts well over 1200
  4540.    {newsgroup}s and an average of 40 megabytes (the equivalent of
  4541.    several thousand paper pages) of new technical articles, news,
  4542.    discussion, chatter, and {flamage} every day.
  4543.  
  4544. :user: n. 1. Someone doing `real work' with the computer, using
  4545.    it as a means rather than an end.  Someone who pays to use a
  4546.    computer.  See {real user}.  2. A programmer who will believe
  4547.    anything you tell him.  One who asks silly questions.  [GLS
  4548.    observes: This is slightly unfair.  It is true that users ask
  4549.    questions (of necessity).  Sometimes they are thoughtful or deep.
  4550.    Very often they are annoying or downright stupid, apparently
  4551.    because the user failed to think for two seconds or look in the
  4552.    documentation before bothering the maintainer.]  See {luser}.
  4553.    3. Someone who uses a program from the outside, however skillfully,
  4554.    without getting into the internals of the program.  One who reports
  4555.    bugs instead of just going ahead and fixing them.
  4556.  
  4557.    The general theory behind this term is that there are two classes
  4558.    of people who work with a program: there are implementors (hackers)
  4559.    and {luser}s.  The users are looked down on by hackers to some
  4560.    extent because they don't understand the full ramifications of the
  4561.    system in all its glory.  (The few users who do are known as
  4562.    `real winners'.)  The term is a relative one: a skilled hacker
  4563.    may be a user with respect to some program he himself does not
  4564.    hack.  A LISP hacker might be one who maintains LISP or one who
  4565.    uses LISP (but with the skill of a hacker).  A LISP user is one who
  4566.    uses LISP, whether skillfully or not.  Thus there is some overlap
  4567.    between the two terms; the subtle distinctions must be resolved by
  4568.    context.
  4569.  
  4570. :user-friendly: adj. Programmer-hostile.  Generally used by hackers in
  4571.    a critical tone, to describe systems that hold the user's hand so
  4572.    obsessively that they make it painful for the more experienced and
  4573.    knowledgeable to get any work done.  See {menuitis}, {drool-proof
  4574.    paper}, {Macintrash}, {user-obsequious}.
  4575.  
  4576. :user-obsequious: adj. Emphatic form of {user-friendly}.  Connotes
  4577.    a system so verbose, inflexible, and determinedly simple-minded
  4578.    that it is nearly unusable.  "Design a system any fool can use and
  4579.    only a fool will want to use it."  See {WIMP environment},
  4580.    {Macintrash}.
  4581.  
  4582. :USG UNIX: /U-S-G yoo'niks/ n. Refers to AT&T UNIX
  4583.    commercial versions after {Version 7}, especially System III and
  4584.    System V releases 1, 2, and 3.  So called because during most of
  4585.    the life-span of those versions AT&T's support crew was called the
  4586.    `UNIX Support Group'.  See {BSD}, {{UNIX}}.
  4587.  
  4588. :UTSL: // [UNIX] n. On-line acronym for `Use the Source, Luke' (a
  4589.    pun on Obi-Wan Kenobi's "Use the Force, Luke!" in `Star
  4590.    Wars') --- analogous to {RTFM} but more polite.  This is a
  4591.    common way of suggesting that someone would be best off reading the
  4592.    source code that supports whatever feature is causing confusion,
  4593.    rather than making yet another futile pass through the manuals or
  4594.    broadcasting questions that haven't attracted {wizard}s to
  4595.    answer them.
  4596.  
  4597.    Until recently, this objurgation was in theory appropriately
  4598.    directed only at associates of some outfit with a UNIX source
  4599.    license; in practice, bootlegs of UNIX source code (made precisely
  4600.    for reference purposes) were so ubiquitous that one could utter
  4601.    at almost anyone on the network without concern.
  4602.  
  4603.    Nowadays, free UNIX clones are becomming common enough that almost
  4604.    anyone can read source legally.  The most widely distributed is
  4605.    probably Linux, with 386BSD (aka {jolix}) running second.  Cheap
  4606.    commercial UNIXes with source such as BSD/386 and Mach386 are
  4607.    accelerating this trend.
  4608.  
  4609. :UUCPNET: n. The store-and-forward network consisting of all the
  4610.    world's connected UNIX machines (and others running some clone of
  4611.    the UUCP (UNIX-to-UNIX CoPy) software).  Any machine reachable only
  4612.    via a {bang path} is on UUCPNET.  See {network address}.
  4613.  
  4614. = V =
  4615. =====
  4616.  
  4617. :vadding: /vad'ing/ [from VAD, a permutation of ADV (i.e.,
  4618.    {ADVENT}), used to avoid a particular {admin}'s continual
  4619.    search-and-destroy sweeps for the game] n. A leisure-time activity
  4620.    of certain hackers involving the covert exploration of the
  4621.    `secret' parts of large buildings --- basements, roofs, freight
  4622.    elevators, maintenance crawlways, steam tunnels, and the like.  A
  4623.    few go so far as to learn locksmithing in order to synthesize
  4624.    vadding keys.  The verb is `to vad' (compare {phreaking}; see
  4625.    also {hack}, sense 9).  This term dates from the late 1970s,
  4626.    before which such activity was simply called `hacking'; the older
  4627.    usage is still prevalent at MIT.
  4628.  
  4629.    The most extreme and dangerous form of vadding is `elevator
  4630.    rodeo', a.k.a. `elevator surfing', a sport played by wrasslin'
  4631.    down a thousand-pound elevator car with a 3-foot piece of
  4632.    string, and then exploiting this mastery in various stimulating
  4633.    ways (such as elevator hopping, shaft exploration, rat-racing, and
  4634.    the ever-popular drop experiments).  Kids, don't try this at home! 
  4635.    See also {hobbit} (sense 2).
  4636.  
  4637. :vanilla: [from the default flavor of ice cream in the U.S.] adj.
  4638.    Ordinary {flavor}, standard.  When used of food, very often does
  4639.    not mean that the food is flavored with vanilla extract!  For
  4640.    example, `vanilla wonton soup' means ordinary wonton soup, as
  4641.    opposed to hot-and-sour wonton soup.  Applied to hardware and
  4642.    software, as in "Vanilla Version 7 UNIX can't run on a
  4643.    vanilla 11/34."  Also used to orthogonalize chip nomenclature; for
  4644.    instance, a 74V00 means what TI calls a 7400, as distinct from
  4645.    a 74LS00, etc.  This word differs from {canonical} in that the
  4646.    latter means `default', whereas vanilla simply means `ordinary'.
  4647.    For example, when hackers go on a {great-wall}, hot-and-sour
  4648.    wonton soup is the {canonical} wonton soup to get (because that
  4649.    is what most of them usually order) even though it isn't the
  4650.    vanilla wonton soup.
  4651.  
  4652. :vannevar: /van'*-var/ n. A bogus technological prediction or a
  4653.    foredoomed engineering concept, esp. one that fails by implicitly
  4654.    assuming that technologies develop linearly, incrementally, and in
  4655.    isolation from one another when in fact the learning curve tends to
  4656.    be highly nonlinear, revolutions are common, and competition is the
  4657.    rule.  The prototype was Vannevar Bush's prediction of
  4658.    `electronic brains' the size of the Empire State Building with a
  4659.    Niagara-Falls-equivalent cooling system for their tubes and relays,
  4660.    made at a time when the semiconductor effect had already been
  4661.    demonstrated.  Other famous vannevars have included magnetic-bubble
  4662.    memory, LISP machines, {videotex}, and a paper from the
  4663.    late 1970s that computed a purported ultimate limit on areal
  4664.    density for ICs that was in fact less than the routine densities of
  4665.    5 years later.
  4666.  
  4667. :vaporware: /vay'pr-weir/ n. Products announced far in advance of
  4668.    any release (which may or may not actually take place).  See also
  4669.    {brochureware}.
  4670.  
  4671. :var: /veir/ or /var/ n. Short for `variable'.  Compare {arg},
  4672.    {param}.
  4673.  
  4674. :VAX: /vaks/ n. 1. [from Virtual Address eXtension] The most
  4675.    successful minicomputer design in industry history, possibly
  4676.    excepting its immediate ancestor, the PDP-11.  Between its release
  4677.    in 1978 and its eclipse by {killer micro}s after about 1986, the
  4678.    VAX was probably the hacker's favorite machine of them all, esp.
  4679.    after the 1982 release of 4.2 BSD UNIX (see {BSD}).  Esp.
  4680.    noted for its large, assembler-programmer-friendly instruction set
  4681.    --- an asset that became a liability after the RISC revolution.
  4682.    2. A major brand of vacuum cleaner in Britain.  Cited here because
  4683.    its alleged sales pitch, "Nothing sucks like a VAX!" became a
  4684.    sort of battle-cry of RISC partisans.    It is even sometimes
  4685.    claimed that DEC actually entered a cross-licensing deal with the
  4686.    vacuum-Vax people that allowed them to market VAX computers in the
  4687.    U.K. in return for not challenging the vacuum cleaner trademark in
  4688.    the U.S.
  4689.  
  4690.    It is sometimes claimed that this slogan was *not* actually
  4691.    used by the Vax vacuum-cleaner people, but was actually that of a
  4692.    rival brand called Electrolux (as in "Nothing sucks like...").
  4693.    It's been reliably confirmed that Electrolux actually did use this
  4694.    slogan in the late 1960s; they're a Belgian company, and it apparently
  4695.    has become a classic example (used in textbooks) of the perils of
  4696.    not knowing the local idiom.
  4697.  
  4698.    It appears, however, that the Vax people thought the slogan a
  4699.    sufficiently good idea to copy it.  Several British hackers report
  4700.    that their promotions used it in 1986--1987, and we have one
  4701.    report from a New Zealander that it surfaced there in TV ads for
  4702.    the product as recently as 1992!
  4703.  
  4704. :VAXectomy: /vak-sek't*-mee/ [by analogy with `vasectomy'] n. A
  4705.    VAX removal.  DEC's Microvaxen, especially, are much slower than
  4706.    newer RISC-based workstations such as the SPARC.  Thus, if one knows
  4707.    one has a replacement coming, VAX removal can be cause for
  4708.    celebration.
  4709.  
  4710. :VAXen: /vak'sn/ [from `oxen', perhaps influenced by `vixen'] n.
  4711.    (alt. `vaxen') The plural canonically used among hackers for the
  4712.    DEC VAX computers.  "Our installation has four PDP-10s and twenty
  4713.    vaxen."  See {boxen}.
  4714.  
  4715. :vaxherd: n. /vaks'herd/ [from `oxherd'] A VAX operator.
  4716.  
  4717. :vaxism: /vak'sizm/ n. A piece of code that exhibits
  4718.    {vaxocentrism} in critical areas.  Compare {PC-ism},
  4719.    {unixism}.
  4720.  
  4721. :vaxocentrism: /vak`soh-sen'trizm/ [analogy with
  4722.    `ethnocentrism'] n. A notional disease said to afflict
  4723.    C programmers who persist in coding according to certain
  4724.    assumptions that are valid (esp. under UNIX) on {VAXen} but
  4725.    false elsewhere. Among these are:
  4726.  
  4727.   1. The assumption that dereferencing a null pointer is safe because it
  4728.      is all bits 0, and location 0 is readable and 0.  Problem: this may
  4729.      instead cause an illegal-address trap on non-VAXen, and even on
  4730.      VAXen under OSes other than BSD UNIX.  Usually this is an implicit
  4731.      assumption of sloppy code (forgetting to check the pointer before
  4732.      using it), rather than deliberate exploitation of a misfeature.)
  4733.  
  4734.   2. The assumption that characters are signed.
  4735.  
  4736.   3. The assumption that a pointer to any one type can freely be cast
  4737.      into a pointer to any other type.  A stronger form of this is the
  4738.      assumption that all pointers are the same size and format, which
  4739.      means you don't have to worry about getting the types correct in
  4740.      calls.  Problem: this fails on word-oriented machines or others
  4741.      with multiple pointer formats.
  4742.  
  4743.   4. The assumption that the parameters of a routine are stored in
  4744.      memory, contiguously, and in strictly ascending or descending
  4745.      order.  Problem: this fails on many RISC architectures.
  4746.  
  4747.   5. The assumption that pointer and integer types are the same size,
  4748.      and that pointers can be stuffed into integer variables (and
  4749.      vice-versa) and drawn back out without being truncated or mangled.
  4750.      Problem: this fails on segmented architectures or word-oriented
  4751.      machines with funny pointer formats.
  4752.  
  4753.   6. The assumption that a data type of any size may begin at any byte
  4754.      address in memory (for example, that you can freely construct and
  4755.      dereference a pointer to a word- or greater-sized object at an odd
  4756.      char address).  Problem: this fails on many (esp. RISC)
  4757.      architectures better optimized for {HLL} execution speed, and can
  4758.      cause an illegal address fault or bus error.
  4759.  
  4760.   7. The (related) assumption that there is no padding at the end of
  4761.      types and that in an array you can thus step right from the last
  4762.      byte of a previous component to the first byte of the next one.
  4763.      This is not only machine- but compiler-dependent.
  4764.  
  4765.   8. The assumption that memory address space is globally flat and that
  4766.      the array reference `foo[-1]' is necessarily valid.  Problem: this
  4767.      fails at 0, or other places on segment-addressed machines like
  4768.      Intel chips (yes, segmentation is universally considered a
  4769.      {brain-damaged} way to design machines (see {moby}), but that is a
  4770.      separate issue).
  4771.  
  4772.   9. The assumption that objects can be arbitrarily large with no
  4773.      special considerations.  Problem: this fails on segmented
  4774.      architectures and under non-virtual-addressing environments.
  4775.  
  4776.  10. The assumption that the stack can be as large as memory.  Problem:
  4777.      this fails on segmented architectures or almost anything else
  4778.      without virtual addressing and a paged stack.
  4779.  
  4780.  11. The assumption that bits and addressable units within an object are
  4781.      ordered in the same way and that this order is a constant of
  4782.      nature.  Problem: this fails on {big-endian} machines.
  4783.  
  4784.  12. The assumption that it is meaningful to compare pointers to
  4785.      different objects not located within the same array, or to objects
  4786.      of different types.  Problem: the former fails on segmented
  4787.      architectures, the latter on word-oriented machines or others with
  4788.      multiple pointer formats.
  4789.  
  4790.  13. The assumption that an `int' is 32 bits, or (nearly equivalently)
  4791.      the assumption that `sizeof(int) == sizeof(long)'.  Problem: this
  4792.      fails on PDP-11s, 286-based systems and even on 386 and 68000
  4793.      systems under some compilers.
  4794.  
  4795.  14. The assumption that `argv[]' is writable.  Problem: this fails in
  4796.      many embedded-systems C environments and even under a few flavors
  4797.      of UNIX.
  4798.  
  4799.    Note that a programmer can validly be accused of vaxocentrism
  4800.    even if he or she has never seen a VAX.  Some of these assumptions
  4801.    (esp. 2--5) were valid on the PDP-11, the original C machine, and
  4802.    became endemic years before the VAX.  The terms `vaxocentricity'
  4803.    and `all-the-world's-a-VAX syndrome' have been used synonymously.
  4804.  
  4805. :vdiff: /vee'dif/ v.,n. Visual diff.  The operation of finding
  4806.    differences between two files by {eyeball search}.  The term
  4807.    `optical diff' has also been reported, and is sometimes more
  4808.    specifically used for the act of superimposing two nearly identical
  4809.    printouts on one another and holding them up to a light to spot
  4810.    differences.  Though this method is poor for detecting omissions in
  4811.    the `rear' file, it can also be used with printouts of graphics, a
  4812.    claim few if any diff programs can make.  See {diff}.
  4813.  
  4814. :veeblefester: /vee'b*l-fes`tr/ [from the "Born Loser"
  4815.    comix via Commodore; prob. originally from `Mad' Magazine's
  4816.    `Veeblefeetzer' parodies ca. 1960] n. Any obnoxious person engaged
  4817.    in the (alleged) professions of marketing or management.  Antonym
  4818.    of {hacker}.  Compare {suit}, {marketroid}.
  4819.  
  4820. :ventilator card: n. Syn. {lace card}.
  4821.  
  4822. :Venus flytrap: [after the insect-eating plant] n. See {firewall
  4823.    machine}.
  4824.  
  4825. :verbage: /ver'b*j/ n. A deliberate misspelling and mispronunciation of
  4826.    {verbiage} that assimilates it to the word `garbage'.  Compare
  4827.    {content-free}.  More pejorative than `verbiage'.
  4828.  
  4829. :verbiage: n. When the context involves a software or hardware
  4830.    system, this refers to {{documentation}}.  This term borrows the
  4831.    connotations of mainstream `verbiage' to suggest that the
  4832.    documentation is of marginal utility and that the motives behind
  4833.    its production have little to do with the ostensible subject.
  4834.  
  4835. :Version 7: alt. V7 /vee' se'vn/ n. The 1978 unsupported release of
  4836.    {{UNIX}} ancestral to all current commercial versions.  Before
  4837.    the release of the POSIX/SVID standards, V7's features were often
  4838.    treated as a UNIX portability baseline.  See {BSD}, {USG UNIX},
  4839.    {{UNIX}}.  Some old-timers impatient with commercialization and
  4840.    kernel bloat still maintain that V7 was the Last True UNIX.
  4841.  
  4842. :vgrep: /vee'grep/ v.,n. Visual grep.  The operation of finding
  4843.    patterns in a file optically rather than digitally (also called an
  4844.    `optical grep').  See {grep}; compare {vdiff}.
  4845.  
  4846. :vi: /V-I/, *not* /vi:/ and *never* /siks/ [from
  4847.    `Visual Interface'] n. A screen editor crufted together by Bill Joy
  4848.    for an early {BSD} release.  Became the de facto standard
  4849.    UNIX editor and a nearly undisputed hacker favorite outside of MIT
  4850.    until the rise of {EMACS} after about 1984.  Tends to frustrate
  4851.    new users no end, as it will neither take commands while expecting
  4852.    input text nor vice versa, and the default setup provides no
  4853.    indication of which mode one is in (one correspondent accordingly
  4854.    reports that he has often heard the editor's name pronounced
  4855.    /vi:l/).  Nevertheless it is still widely used (about half the
  4856.    respondents in a 1991 USENET poll preferred it), and even EMACS
  4857.    fans often resort to it as a mail editor and for small editing jobs
  4858.    (mainly because it starts up faster than the bulkier versions of
  4859.    EMACS).  See {holy wars}.
  4860.  
  4861. :videotex: n. obs. An electronic service offering people the
  4862.    privilege of paying to read the weather on their television screens
  4863.    instead of having somebody read it to them for free while they
  4864.    brush their teeth.  The idea bombed everywhere it wasn't
  4865.    government-subsidized, because by the time videotex was practical
  4866.    the installed base of personal computers could hook up to
  4867.    timesharing services and do the things for which videotex might
  4868.    have been worthwhile better and cheaper.  Videotex planners badly
  4869.    overestimated both the appeal of getting information from a
  4870.    computer and the cost of local intelligence at the user's end.
  4871.    Like the {gorilla arm} effect, this has been a cautionary tale
  4872.    to hackers ever since.  See also {vannevar}.
  4873.  
  4874. :virgin: adj. Unused; pristine; in a known initial state.  "Let's
  4875.    bring up a virgin system and see if it crashes again."  (Esp.
  4876.    useful after contracting a {virus} through {SEX}.)  Also, by
  4877.    extension, buffers and the like within a program that have not yet
  4878.    been used.
  4879.  
  4880. :virtual: [via the technical term `virtual memory', prob. from
  4881.    the term `virtual image' in optics] adj. 1. Common alternative
  4882.    to {logical}; often used to refer to the artificial objects
  4883.    created by a computer system to help the system control access to
  4884.    shared resources.  2. Simulated; performing the functions of
  4885.    something that isn't really there.  An imaginative child's doll may
  4886.    be a virtual playmate.  Oppose {real}.
  4887.  
  4888. :virtual Friday: n. (also `logical Friday') The last day before
  4889.    an extended weekend, if that day is not a `real' Friday.  For
  4890.    example, the U.S. holiday Thanksgiving is always on a Thursday.
  4891.    The next day is often also a holiday or taken as an extra day off,
  4892.    in which case Wednesday of that week is a virtual Friday (and
  4893.    Thursday is a virtual Saturday, as is Friday).  There are also
  4894.    `virtual Mondays' that are actually Tuesdays, after the three-day
  4895.    weekends associated with many national holidays in the U.S.
  4896.  
  4897. :virtual reality: n. 1. Computer simulations that use 3-D graphics
  4898.    and devices such as the Dataglove to allow the user to interact
  4899.    with the simulation.  See {cyberspace}.  2. A form of network
  4900.    interaction incorporating aspects of role-playing games,
  4901.    interactive theater, improvisational comedy, and `true confessions'
  4902.    magazines.  In a virtual reality forum (such as USENET's
  4903.    alt.callahans newsgroup or the {MUD} experiments on Internet),
  4904.    interaction between the participants is written like a shared novel
  4905.    complete with scenery, `foreground characters' that may be
  4906.    personae utterly unlike the people who write them, and common
  4907.    `background characters' manipulable by all parties.  The one
  4908.    iron law is that you may not write irreversible changes to a
  4909.    character without the consent of the person who `owns' it.
  4910.    Otherwise anything goes.  See {bamf}, {cyberspace}.
  4911.  
  4912. :virtual shredder: n. The jargonic equivalent of the {bit bucket}
  4913.    at shops using IBM's VM/CMS operating system.  VM/CMS officially
  4914.    supports a whole bestiary of virtual card readers, virtual
  4915.    printers, and other phantom devices; these are used to supply some
  4916.    of the same capabilities UNIX gets from pipes and I/O redirection.
  4917.  
  4918. :virus: [from the obvious analogy with biological viruses, via SF]
  4919.    n. A cracker program that searches out other programs and `infects'
  4920.    them by embedding a copy of itself in them, so that they become
  4921.    {Trojan horse}s.  When these programs are executed, the embedded
  4922.    virus is executed too, thus propagating the `infection'.  This
  4923.    normally happens invisibly to the user.  Unlike a {worm}, a
  4924.    virus cannot infect other computers without assistance.  It is
  4925.    propagated by vectors such as humans trading programs with their
  4926.    friends (see {SEX}).  The virus may do nothing but propagate
  4927.    itself and then allow the program to run normally.  Usually,
  4928.    however, after propagating silently for a while, it starts doing
  4929.    things like writing cute messages on the terminal or playing
  4930.    strange tricks with your display (some viruses include nice
  4931.    {display hack}s).  Many nasty viruses, written by particularly
  4932.    perversely minded {cracker}s, do irreversible damage, like
  4933.    nuking all the user's files.
  4934.  
  4935.    In the 1990s, viruses have become a serious problem, especially
  4936.    among IBM PC and Macintosh users (the lack of security on these
  4937.    machines enables viruses to spread easily, even infecting the
  4938.    operating system).  The production of special anti-virus software
  4939.    has become an industry, and a number of exaggerated media reports
  4940.    have caused outbreaks of near hysteria among users; many
  4941.    {luser}s tend to blame *everything* that doesn't work as
  4942.    they had expected on virus attacks.  Accordingly, this sense of
  4943.    `virus' has passed not only into techspeak but into also popular
  4944.    usage (where it is often incorrectly used to denote a {worm} or
  4945.    even a {Trojan horse}).  See {phage}; compare {back door};
  4946.    see also {UNIX conspiracy}.
  4947.  
  4948. :visionary: n. 1. One who hacks vision, in the sense of an
  4949.    Artificial Intelligence researcher working on the problem of
  4950.    getting computers to `see' things using TV cameras.  (There isn't
  4951.    any problem in sending information from a TV camera to a computer.
  4952.    The problem is, how can the computer be programmed to make use of
  4953.    the camera information?  See {SMOP}, {AI-complete}.)  2. [IBM]
  4954.    One who reads the outside literature.  At IBM, apparently, such a
  4955.    penchant is viewed with awe and wonder.
  4956.  
  4957. :VMS: /V-M-S/ n. DEC's proprietary operating system for its VAX
  4958.    minicomputer; one of the seven or so environments that loom largest
  4959.    in hacker folklore.  Many UNIX fans generously concede that VMS
  4960.    would probably be the hacker's favorite commercial OS if UNIX
  4961.    didn't exist; though true, this makes VMS fans furious.  One major
  4962.    hacker gripe with VMS concerns its slowness --- thus the following
  4963.    limerick:
  4964.  
  4965.         There once was a system called VMS
  4966.         Of cycles by no means abstemious.
  4967.              It's chock-full of hacks
  4968.              And runs on a VAX
  4969.         And makes my poor stomach all squeamious.
  4970.                                          --- The Great Quux
  4971.  
  4972.    See also {VAX}, {{TOPS-10}}, {{TOPS-20}}, {{UNIX}}, {runic}.
  4973.  
  4974. :voice: vt. To phone someone, as opposed to emailing them or
  4975.    connecting in {talk mode}.  "I'm busy now; I'll voice you later."
  4976.  
  4977. :voice-net: n. Hackish way of referring to the telephone system,
  4978.    analogizing it to a digital network.  USENET {sig block}s not
  4979.    uncommonly include the sender's phone next to a "Voice:" or
  4980.    "Voice-Net:" header; common variants of this are "Voicenet" and
  4981.    "V-Net".  Compare {paper-net}, {snail-mail}.
  4982.  
  4983. :voodoo programming: [from George Bush's "voodoo economics"] n.
  4984.    The use by guess or cookbook of an {obscure} or {hairy} system,
  4985.    feature, or algorithm that one does not truly understand.  The
  4986.    implication is that the technique may not work, and if it doesn't,
  4987.    one will never know why.  Almost synonymous with {black magic},
  4988.    except that black magic typically isn't documented and
  4989.    *nobody* understands it.  Compare {magic}, {deep magic},
  4990.    {heavy wizardry}, {rain dance}, {cargo cult programming},
  4991.    {wave a dead chicken}.
  4992.  
  4993. :VR: // [MUD] n. On-line abbrev for {virtual reality}, as
  4994.    opposed to {RL}.
  4995.  
  4996. :Vulcan nerve pinch: n. [from the old "Star Trek" TV series via
  4997.    Commodore Amiga hackers] The keyboard combination that forces a
  4998.    soft-boot or jump to ROM monitor (on machines that support such a
  4999.    feature).  On many micros this is Ctrl-Alt-Del; on Suns, L1-A; on
  5000.    some Macintoshes, it is <Cmd>-<Power switch>!  Also called
  5001.    {three-finger salute}.  Compare {quadruple bucky}.
  5002.  
  5003. :vulture capitalist: n. Pejorative hackerism for `venture
  5004.    capitalist', deriving from the common practice of pushing contracts
  5005.    that deprive inventors of control over their own innovations and
  5006.    most of the money they ought to have made from them.
  5007.  
  5008. = W =
  5009. =====
  5010.  
  5011. :wabbit: /wab'it/ [almost certainly from Elmer Fudd's immortal
  5012.    line "You wascawwy wabbit!"] n. 1. A legendary early hack
  5013.    reported on a System/360 at RPI and elsewhere around 1978; this may
  5014.    have descended (if only by inspiration) from hack called RABBITS
  5015.    reported from 1969 on a Burroughs 55000 at the University of
  5016.    Washington Computer Center.  The program would make two copies of
  5017.    itself every time it was run, eventually crashing the system.
  5018.    2. By extension, any hack that includes infinite self-replication
  5019.    but is not a {virus} or {worm}.  See {fork bomb} and
  5020.    {rabbit job}, see also {cookie monster}.
  5021.  
  5022. :WAITS:: /wayts/ n. The mutant cousin of {{TOPS-10}} used on a
  5023.    handful of systems at {{SAIL}} up to 1990.  There was never an
  5024.    `official' expansion of WAITS (the name itself having been arrived
  5025.    at by a rather sideways process), but it was frequently glossed as
  5026.    `West-coast Alternative to ITS'.  Though WAITS was less visible
  5027.    than ITS, there was frequent exchange of people and ideas between
  5028.    the two communities, and innovations pioneered at WAITS exerted
  5029.    enormous indirect influence.  The early screen modes of {EMACS},
  5030.    for example, were directly inspired by WAITS's `E' editor --- one
  5031.    of a family of editors that were the first to do `real-time
  5032.    editing', in which the editing commands were invisible and where
  5033.    one typed text at the point of insertion/overwriting.  The modern
  5034.    style of multi-region windowing is said to have originated there,
  5035.    and WAITS alumni at XEROX PARC and elsewhere played major roles in
  5036.    the developments that led to the XEROX Star, the Macintosh, and the
  5037.    Sun workstations.  {Bucky bits} were also invented there ---
  5038.    thus, the ALT key on every IBM PC is a WAITS legacy.  One notable
  5039.    WAITS feature seldom duplicated elsewhere was a news-wire interface
  5040.    that allowed WAITS hackers to read, store, and filter AP and UPI
  5041.    dispatches from their terminals; the system also featured a
  5042.    still-unusual level of support for what is now called `multimedia'
  5043.    computing, allowing analog audio and video signals to be switched
  5044.    to programming terminals.
  5045.  
  5046. :waldo: /wol'doh/ [From Robert A. Heinlein's story "Waldo"]
  5047.    1. A mechanical agent, such as a gripper arm, controlled by a human
  5048.    limb.  When these were developed for the nuclear industry in the
  5049.    mid-1940s they were named after the invention described by Heinlein
  5050.    in the story, which he wrote in 1942.  Now known by the more
  5051.    generic term `telefactoring', this technology is of intense
  5052.    interest to NASA for tasks like space station maintenance.  2. At
  5053.    Harvard (particularly by Tom Cheatham and students), this is used
  5054.    instead of {foobar} as a metasyntactic variable and general
  5055.    nonsense word.  See {foo}, {bar}, {foobar}, {quux}.
  5056.  
  5057. :walk: n.,vt. Traversal of a data structure, especially an array or
  5058.    linked-list data structure in {core}.  See also {codewalker},
  5059.    {silly walk}, {clobber}.
  5060.  
  5061. :walk off the end of: vt. To run past the end of an array, list, or
  5062.    medium after stepping through it --- a good way to land in trouble.
  5063.    Often the result of an {off-by-one error}.  Compare
  5064.    {clobber}, {roach}, {smash the stack}.
  5065.  
  5066. :walking drives: n. An occasional failure mode of magnetic-disk
  5067.    drives back in the days when they were huge, clunky {washing
  5068.    machine}s.  Those old {dinosaur} parts carried terrific angular
  5069.    momentum; the combination of a misaligned spindle or worn bearings
  5070.    and stick-slip interactions with the floor could cause them to
  5071.    `walk' across a room, lurching alternate corners forward a couple
  5072.    of millimeters at a time.  There is a legend about a drive that
  5073.    walked over to the only door to the computer room and jammed it
  5074.    shut; the staff had to cut a hole in the wall in order to get at
  5075.    it!  Walking could also be induced by certain patterns of drive
  5076.    access (a fast seek across the whole width of the disk, followed by
  5077.    a slow seek in the other direction).  Some bands of old-time
  5078.    hackers figured out how to induce disk-accessing patterns that
  5079.    would do this to particular drive models and held disk-drive races.
  5080.  
  5081. :wall: [WPI] interj. 1. An indication of confusion, usually spoken
  5082.    with a quizzical tone:  "Wall??"  2. A request for further
  5083.    explication.  Compare {octal forty}.  3. [UNIX] v. To send a message
  5084.    to everyone currently logged in, esp. with the wall(8) utility.
  5085.  
  5086.    It is said that sense 1 came from the idiom `like talking to a
  5087.    blank wall'.  It was originally used in situations where, after you
  5088.    had carefully answered a question, the questioner stared at you
  5089.    blankly, clearly having understood nothing that was explained.  You
  5090.    would then throw out a "Hello, wall?" to elicit some sort of
  5091.    response from the questioner.  Later, confused questioners began
  5092.    voicing "Wall?" themselves.
  5093.  
  5094. :wall follower: n. A person or algorithm that compensates for lack
  5095.    of sophistication or native stupidity by efficiently following some
  5096.    simple procedure shown to have been effective in the past.  Used of
  5097.    an algorithm, this is not necessarily pejorative; it recalls
  5098.    `Harvey Wallbanger', the winning robot in an early AI contest
  5099.    (named, of course, after the cocktail).  Harvey successfully solved
  5100.    mazes by keeping a `finger' on one wall and running till it came
  5101.    out the other end.  This was inelegant, but it was mathematically
  5102.    guaranteed to work on simply-connected mazes --- and, in fact,
  5103.    Harvey outperformed more sophisticated robots that tried to
  5104.    `learn' each maze by building an internal representation of it.
  5105.    Used of humans, the term *is* pejorative and implies an
  5106.    uncreative, bureaucratic, by-the-book mentality.  See also {code
  5107.    grinder}, {droid}.
  5108.  
  5109. :wall time: n. (also `wall clock time') 1. `Real world' time (what
  5110.    the clock on the wall shows), as opposed to the system clock's idea
  5111.    of time.  2. The real running time of a program, as opposed to the
  5112.    number of {clocks} required to execute it (on a timesharing
  5113.    system these will differ, as no one program gets all the
  5114.    {clocks}, and on multiprocessor systems with good thread support
  5115.    one may get more processor clocks than real-time clocks).
  5116.  
  5117. :wallpaper: n. 1. A file containing a listing (e.g., assembly
  5118.    listing) or a transcript, esp. a file containing a transcript of
  5119.    all or part of a login session.  (The idea was that the paper for
  5120.    such listings was essentially good only for wallpaper, as evidenced
  5121.    at Stanford, where it was used to cover windows.)  Now rare,
  5122.    esp. since other systems have developed other terms for it (e.g.,
  5123.    PHOTO on TWENEX).  However, the UNIX world doesn't have an
  5124.    equivalent term, so perhaps {wallpaper} will take hold there.
  5125.    The term probably originated on ITS, where the commands to begin
  5126.    and end transcript files were `:WALBEG' and `:WALEND',
  5127.    with default file `WALL PAPER' (the space was a path
  5128.    delimiter).  2. The background pattern used on graphical
  5129.    workstations (this is techspeak under the `Windows' graphical user
  5130.    interface to MS-DOS).  3. `wallpaper file' n. The file that
  5131.    contains the wallpaper information before it is actually printed on
  5132.    paper.  (Even if you don't intend ever to produce a real paper copy
  5133.    of the file, it is still called a wallpaper file.)
  5134.  
  5135. :wango: /wang'goh/ n. Random bit-level {grovel}ling going on in
  5136.    a system during some unspecified operation.  Often used in
  5137.    combination with {mumble}.  For example: "You start with the `.o'
  5138.    file, run it through this postprocessor that does mumble-wango ---
  5139.    and it comes out a snazzy object-oriented executable."
  5140.  
  5141. :wank: /wangk/ [Columbia University: prob. by mutation from
  5142.    Commonwealth slang v. `wank', to masturbate] n.,v. Used much as
  5143.    {hack} is elsewhere, as a noun denoting a clever technique or
  5144.    person or the result of such cleverness.  May describe (negatively)
  5145.    the act of hacking for hacking's sake ("Quit wanking, let's go get
  5146.    supper!")  or (more positively) a {wizard}.  Adj.  `wanky'
  5147.    describes something particularly clever (a person, program, or
  5148.    algorithm).  Conversations can also get wanky when there are too
  5149.    many wanks involved.  This excess wankiness is signalled by an
  5150.    overload of the `wankometer' (compare {bogometer}).  When the
  5151.    wankometer overloads, the conversation's subject must be changed,
  5152.    or all non-wanks will leave.  Compare `neep-neeping' (under
  5153.    {neep-neep}).  Usage: U.S. only.  In Britain and the Commonwealth
  5154.    this word is *extremely* rude and is best avoided unless one
  5155.    intends to give offense.
  5156.  
  5157. :wannabee: /won'*-bee/ (also, more plausibly, spelled
  5158.    `wannabe') [from a term recently used to describe Madonna fans
  5159.    who dress, talk, and act like their idol; prob. originally from
  5160.    biker slang] n. A would-be {hacker}.  The connotations of this
  5161.    term differ sharply depending on the age and exposure of the
  5162.    subject.  Used of a person who is in or might be entering
  5163.    {larval stage}, it is semi-approving; such wannabees can be
  5164.    annoying but most hackers remember that they, too, were once such
  5165.    creatures.  When used of any professional programmer, CS academic,
  5166.    writer, or {suit}, it is derogatory, implying that said person
  5167.    is trying to cuddle up to the hacker mystique but doesn't,
  5168.    fundamentally, have a prayer of understanding what it is all about.
  5169.    Overuse of terms from this lexicon is often an indication of the
  5170.    {wannabee} nature.  Compare {newbie}.
  5171.  
  5172.    Historical note: The wannabee phenomenon has a slightly different
  5173.    flavor now (1993) than it did ten or fifteen years ago.  When the
  5174.    people who are now hackerdom's tribal elders were in {larval
  5175.    stage}, the process of becoming a hacker was largely unconscious
  5176.    and unaffected by models known in popular culture --- communities
  5177.    formed spontaneously around people who, *as individuals*, felt
  5178.    irresistibly drawn to do hackerly things, and what wannabees
  5179.    experienced was a fairly pure, skill-focused desire to become
  5180.    similarly wizardly.  Those days of innocence are gone forever;
  5181.    society's adaptation to the advent of the microcomputer after 1980
  5182.    included the elevation of the hacker as a new kind of folk hero,
  5183.    and the result is that some people semi-consciously set out to
  5184.    *be hackers* and borrow hackish prestige by fitting the
  5185.    popular image of hackers.  Fortunately, to do this really well, one
  5186.    has to actually become a wizard.  Nevertheless, old-time hackers
  5187.    tend to share a poorly articulated disquiet about the change; among
  5188.    other things, it gives them mixed feelings about the effects of
  5189.    public compendia of lore like this one.
  5190.  
  5191. :warlording: [from the USENET group alt.fan.warlord] v. The act
  5192.    of excoriating a bloated, ugly, or derivative {sig block}.
  5193.    Common grounds for warlording include the presence of a signature
  5194.    rendered in a {BUAF}, over-used or cliched {sig quote}s, ugly
  5195.    {ASCII art}, or simply excessive size.  The original `Warlord'
  5196.    was a {BIFF}-like {newbie} c.1991 who featured in his sig a
  5197.    particularly large and obnoxious ASCII graphic resembling the sword
  5198.    of Conan the Barbarian in the 1981 John Milius movie; the group
  5199.    name alt.fan.warlord was sarcasm, and the characteristic mode
  5200.    of warlording is devastatingly sarcastic praise.
  5201.  
  5202. :warm boot: n. See {boot}.
  5203.  
  5204. :wart: n. A small, {crock}y {feature} that sticks out of an
  5205.    otherwise {clean} design.  Something conspicuous for localized
  5206.    ugliness, especially a special-case exception to a general rule.
  5207.    For example, in some versions of `csh(1)', single quotes
  5208.    literalize every character inside them except `!'.  In ANSI C,
  5209.    the `??' syntax used for obtaining ASCII characters in a foreign
  5210.    environment is a wart.  See also {miswart}.
  5211.  
  5212. :washing machine: n. Old-style 14-inch hard disks in floor-standing
  5213.    cabinets.  So called because of the size of the cabinet and the
  5214.    `top-loading' access to the media packs --- and, of course, they
  5215.    were always set on `spin cycle'.  The washing-machine idiom
  5216.    transcends language barriers; it is even used in Russian hacker
  5217.    jargon.  See also {walking drives}.  The thick channel cables
  5218.    connecting these were called `bit hoses' (see {hose}).
  5219.  
  5220. :water MIPS: n. (see {MIPS}, sense 2) Large, water-cooled
  5221.    machines of either today's ECL-supercomputer flavor or yesterday's
  5222.    traditional {mainframe} type.
  5223.  
  5224.  
  5225. :wave a dead chicken: v. To perform a ritual in the direction of
  5226.    crashed software or hardware that one believes to be futile but
  5227.    is nevertheless necessary so that others are satisfied that an
  5228.    appropriate degree of effort has been expended.  "I'll wave a dead
  5229.    chicken over the source code, but I really think we've run into an
  5230.    OS bug."  Compare {voodoo programming}, {rain dance}.
  5231.  
  5232. :weasel: n. [Cambridge] A naive user, one who deliberately or
  5233.    accidentally does things that are stupid or ill-advised.  Roughly
  5234.    synonymous with {loser}.
  5235.  
  5236. :wedged: adj. 1. To be stuck, incapable of proceeding without help.
  5237.    This is different from having crashed.  If the system has crashed,
  5238.    it has become totally non-functioning.  If the system is wedged, it
  5239.    is trying to do something but cannot make progress; it may be
  5240.    capable of doing a few things, but not be fully operational.  For
  5241.    example, a process may become wedged if it {deadlock}s with
  5242.    another (but not all instances of wedging are deadlocks).  See also
  5243.    {gronk}, {locked up}, {hosed}.  Describes a
  5244.    {deadlock}ed condition.  2. Often refers to humans suffering
  5245.    misconceptions.  "He's totally wedged --- he's convinced that he
  5246.    can levitate through meditation."  3. [UNIX] Specifically used to
  5247.    describe the state of a TTY left in a losing state by abort of a
  5248.    screen-oriented program or one that has messed with the line
  5249.    discipline in some obscure way.
  5250.  
  5251.    There is some dispute over the origin of this term.  It is usually
  5252.    thought to derive from a common description of recto-cranial
  5253.    inversion; however, it may actually have originated with older
  5254.    `hot-press' printing technology in which physical type elements
  5255.    were locked into type frames with wedges driven in by mallets.
  5256.    Once this had been done, no changes in the typesetting for that
  5257.    page could be made.
  5258.  
  5259. :wedgie: [Fairchild] n. A bug.  Prob. related to {wedged}.
  5260.  
  5261. :wedgitude: /wedj'i-t[y]ood/ n. The quality or state of being
  5262.    {wedged}.
  5263.  
  5264. :weeble: /weeb'l/ [Cambridge] interj. Used to denote frustration,
  5265.    usually at amazing stupidity.  "I stuck the disk in upside down."
  5266.    "Weeble...." Compare {gurfle}.
  5267.  
  5268. :weeds: n. 1. Refers to development projects or algorithms that have
  5269.    no possible relevance or practical application.  Comes from `off in
  5270.    the weeds'.  Used in phrases like "lexical analysis for microcode
  5271.    is serious weeds...."  2. At CDC/ETA before its demise, the
  5272.    phrase `go off in the weeds' was equivalent to IBM's {branch to
  5273.    Fishkill} and mainstream hackerdom's {jump off into never-never
  5274.    land}.
  5275.  
  5276. :weenie: n. 1. [on BBSes] Any of a species of luser resembling a
  5277.    less amusing version of {BIFF} that infests many {BBS}
  5278.    systems.  The typical weenie is a teenage boy with poor social
  5279.    skills travelling under a grandiose {handle} derived from
  5280.    fantasy or heavy-metal rock lyrics.  Among sysops, `the weenie
  5281.    problem' refers to the marginally literate and profanity-laden
  5282.    {flamage} weenies tend to spew all over a newly-discovered BBS.
  5283.    Compare {spod}, {computer geek}, {terminal junkie}.
  5284.    2. [Among hackers] When used with a qualifier (for example, as in
  5285.    {UNIX weenie}, VMS weenie, IBM weenie) this can be either an
  5286.    insult or a term of praise, depending on context, tone of voice,
  5287.    and whether or not it is applied by a person who considers him or
  5288.    herself to be the same sort of weenie.  Implies that the weenie has
  5289.    put a major investment of time, effort, and concentration into the
  5290.    area indicated; whether this is positive or negative depends on the
  5291.    hearer's judgment of how the speaker feels about that area.  See
  5292.    also {bigot}.  3. The semicolon character, `;' (ASCII
  5293.    0111011).
  5294.  
  5295. :Weenix: /wee'niks/ [ITS] n. A derogatory term for {{UNIX}},
  5296.    derived from {UNIX weenie}.  According to one noted ex-ITSer, it
  5297.    is "the operating system preferred by Unix Weenies: typified by
  5298.    poor modularity, poor reliability, hard file deletion, no file
  5299.    version numbers, case sensitivity everywhere, and users who believe
  5300.    that these are all advantages".  Some ITS fans behave as though
  5301.    they believe UNIX stole a future that rightfully belonged to them.
  5302.    See {{ITS}}, sense 2.
  5303.  
  5304. :well-behaved: adj. 1. [primarily {{MS-DOS}}] Said of software
  5305.    conforming to system interface guidelines and standards.
  5306.    Well-behaved software uses the operating system to do chores such
  5307.    as keyboard input, allocating memory and drawing graphics.  Oppose
  5308.    {ill-behaved}.  2. Software that does its job quietly and
  5309.    without counterintuitive effects.  Esp. said of software having
  5310.    an interface spec sufficiently simple and well-defined that it can
  5311.    be used as a {tool} by other software. See {cat}.
  5312.  
  5313. :well-connected: adj. Said of a computer installation, this means
  5314.    that it has reliable email links with the network and/or that
  5315.    it relays a large fraction of available {USENET} newsgroups.
  5316.    `Well-known' can be almost synonymous, but also implies that the
  5317.    site's name is familiar to many (due perhaps to an archive service
  5318.    or active USENET users).
  5319.  
  5320. :wetware: /wet'weir/ [prob. from the novels of Rudy Rucker] n.
  5321.    1. The human nervous system, as opposed to computer hardware or
  5322.    software.  "Wetware has 7 plus or minus 2 temporary registers."
  5323.    2. Human beings (programmers, operators, administrators) attached
  5324.    to a computer system, as opposed to the system's hardware or
  5325.    software.  See {liveware}, {meatware}.
  5326.  
  5327. :whack: v. According to arch-hacker James Gosling, to "...modify a
  5328.    program with no idea whatsoever how it works." (See {whacker}.)
  5329.    It is actually possible to do this in nontrivial circumstances if
  5330.    the change is small and well-defined and you are very good at
  5331.    {glark}ing things from context.  As a trivial example, it is
  5332.    relatively easy to change all `stderr' writes to `stdout'
  5333.    writes in a piece of C filter code which remains otherwise
  5334.    mysterious.
  5335.  
  5336. :whacker: [University of Maryland: from {hacker}] n. 1. A person,
  5337.    similar to a {hacker}, who enjoys exploring the details of
  5338.    programmable systems and how to stretch their capabilities.
  5339.    Whereas a hacker tends to produce great hacks, a whacker only ends
  5340.    up whacking the system or program in question.  Whackers are often
  5341.    quite egotistical and eager to claim {wizard} status,
  5342.    regardless of the views of their peers.  2. A person who is good at
  5343.    programming quickly, though rather poorly and ineptly.
  5344.  
  5345. :whales: n. See {like kicking dead whales down the beach}.
  5346.  
  5347. :whalesong: n. The peculiar clicking and whooshing sounds made by a
  5348.    PEP modem such as the Telebit Trailblazer as it tries to
  5349.    synchronize with another PEP modem for their special high-speed
  5350.    mode.  This sound isn't anything like the normal two-tone handshake
  5351.    between conventional modems and is instantly recognizable to anyone
  5352.    who has heard it more than once.  It sounds, in fact, very much
  5353.    like whale songs.  This noise is also called "the moose call" or
  5354.    "moose tones".
  5355.  
  5356. :What's a spline?: [XEROX PARC] This phrase expands to: "You have
  5357.    just used a term that I've heard for a year and a half, and I feel
  5358.    I should know, but don't.  My curiosity has finally overcome my
  5359.    guilt."  The PARC lexicon adds "Moral: don't hesitate to ask
  5360.    questions, even if they seem obvious."
  5361.  
  5362. :wheel: [from slang `big wheel' for a powerful person] n. A
  5363.    person who has an active {wheel bit}.  "We need to find a
  5364.    wheel to unwedge the hung tape drives." (see {wedged}, sense
  5365.    1.)
  5366.  
  5367. :wheel bit: n. A privilege bit that allows the possessor to perform
  5368.    some restricted operation on a timesharing system, such as read or
  5369.    write any file on the system regardless of protections, change or
  5370.    look at any address in the running monitor, crash or reload the
  5371.    system, and kill or create jobs and user accounts.  The term was
  5372.    invented on the TENEX operating system, and carried over to
  5373.    TOPS-20, XEROX-IFS, and others.  The state of being in a privileged
  5374.    logon is sometimes called `wheel mode'.  This term entered the
  5375.    UNIX culture from TWENEX in the mid-1980s and has been gaining
  5376.    popularity there (esp. at university sites).  See also {root}.
  5377.  
  5378. :wheel wars: [Stanford University] A period in {larval stage}
  5379.    during which student hackers hassle each other by attempting to log
  5380.    each other out of the system, delete each other's files, and
  5381.    otherwise wreak havoc, usually at the expense of the lesser users.
  5382.  
  5383. :White Book: n. 1. Syn. {K&R}.  2. Adobe's fourth book in the
  5384.    PostScript series, describing the previously-secret format of Type
  5385.    1 fonts; `Adobe Type 1 Font Format, version 1.1',
  5386.    (Addison-Wesley, 1990, ISBN 0-201-57044-0). See also {Red Book},
  5387.    {Green Book}, {Blue Book}.
  5388.  
  5389. :whizzy: [Sun] adj. (alt. `wizzy') Describes a {cuspy} program;
  5390.    one that is feature-rich and well presented.
  5391.  
  5392. :WIBNI: // [Bell Labs: Wouldn't It Be Nice If] n. What most
  5393.    requirements documents and specifications consist entirely of.
  5394.    Compare {IWBNI}.
  5395.  
  5396. :widget: n. 1. A meta-thing.  Used to stand for a real object in
  5397.    didactic examples (especially database tutorials).  Legend has it
  5398.    that the original widgets were holders for buggy whips.  "But
  5399.    suppose the parts list for a widget has 52 entries...."
  5400.    2. [poss. evoking `window gadget'] A user interface object in
  5401.    {X} graphical user interfaces.
  5402.  
  5403. :wiggles: n. [scientific computation] In solving partial differential
  5404.    equations by finite difference and similar methods, wiggles are
  5405.    sawtooth (up-down-up-down) oscillations at the shortest wavelength
  5406.    representable on the grid.  If an algorithm is unstable, this is
  5407.    often the most unstable waveform, so it grows to dominate the
  5408.    solution.  Alternatively, stable (though inaccurate) wiggles can be
  5409.    generated near a discontinuity by a Gibbs phenomenon.
  5410.  
  5411. :WIMP environment: n. [acronymic from `Window, Icon, Menu, Pointing
  5412.    device (or Pull-down menu)'] A graphical-user-interface-based
  5413.    environment such as {X} or the Macintosh interface, esp. as
  5414.    described by a hacker who prefers command-line interfaces for their
  5415.    superior flexibility and extensibility.  However, it is used
  5416.    without negative connotations; one must pay attention to voice tone
  5417.    and other signals to interpret correctly.  See {menuitis},
  5418.    {user-obsequious}.
  5419.  
  5420. :win: [MIT] 1. vi. To succeed.  A program wins if no unexpected
  5421.    conditions arise, or (especially) if it sufficiently {robust} to
  5422.    take exceptions in stride.  2. n. Success, or a specific instance
  5423.    thereof.  A pleasing outcome.  A {feature}.  Emphatic forms:
  5424.    `moby win', `super win', `hyper-win' (often used
  5425.    interjectively as a reply).  For some reason `suitable win' is
  5426.    also common at MIT, usually in reference to a satisfactory solution
  5427.    to a problem.  Oppose {lose}; see also {big win}, which isn't
  5428.    quite just an intensification of `win'.
  5429.  
  5430. :win big: vi. To experience serendipity.  "I went shopping and won
  5431.    big; there was a 2-for-1 sale." See {big win}.
  5432.  
  5433. :win win: interj. Expresses pleasure at a {win}.
  5434.  
  5435. :Winchester:: n. Informal generic term for `floating-head'
  5436.    magnetic-disk drives in which the read-write head planes over the
  5437.    disk surface on an air cushion.  The name arose because the
  5438.    original 1973 engineering prototype for what later became the
  5439.    IBM 3340 featured two 30-megabyte volumes; 30--30 became
  5440.    `Winchester' when somebody noticed the similarity to the common
  5441.    term for a famous Winchester rifle (in the latter, the first 30
  5442.    referred to caliber and the second to the grain weight of the
  5443.    charge).
  5444.  
  5445. :window shopping: [US Geological Survey] n. Among users of {WIMP
  5446.    environment}s like {X} or the Macintosh, extended
  5447.    experimentation with new window colors, fonts, and icon shapes.
  5448.    This activity can take up hours of what might otherwise have been
  5449.    productive working time.  "I spent the afternoon window shopping
  5450.    until I found the coolest shade of green for my active window
  5451.    borders --- now they perfectly match my medium slate blue
  5452.    background."  Serious window shoppers will spend their days
  5453.    with bitmap editors, creating new and different icons and
  5454.    background patterns for all to see.  Also: `window dressing', the
  5455.    act of applying new fonts, colors, etc.  See {fritterware},
  5456.    compare {macdink}.
  5457.  
  5458. :winged comments: n. Comments set on the same line as code, as
  5459.    opposed to {boxed comments}.  In C, for example:
  5460.  
  5461.      d = sqrt(x*x + y*y);  /* distance from origin */
  5462.  
  5463.    Generally these refer only to the action(s) taken on that line.
  5464.  
  5465. :winkey: n. (alt. `winkey face')  See {emoticon}.
  5466.  
  5467. :winnage: /win'*j/ n. The situation when a lossage is corrected, or
  5468.    when something is winning.
  5469.  
  5470. :winner: 1. n. An unexpectedly good situation, program, programmer,
  5471.    or person.  "So it turned out I could use a {lexer} generator
  5472.    instead of hand-coding my own pattern recognizer.  What a win!"
  5473.    2. `real winner': Often sarcastic, but also used as high praise
  5474.    (see also the note under {user}). "He's a real winner --- never
  5475.    reports a bug till he can duplicate it and send in an
  5476.    example."
  5477.  
  5478. :winnitude: /win'*-t[y]ood/ n. The quality of winning (as opposed
  5479.    to {winnage}, which is the result of winning).  "Guess what?
  5480.    They tweaked the microcode and now the LISP interpreter runs twice
  5481.    as fast as it used to."  "That's really great!  Boy, what
  5482.    winnitude!"  "Yup. I'll probably get a half-hour's winnage on the
  5483.    next run of my program."  Perhaps curiously, the obvious antonym
  5484.    `lossitude' is rare.
  5485.  
  5486. :wired: n. See {hardwired}.
  5487.  
  5488. :wirehead: /wi:r'hed/ n. [prob. from SF slang for an
  5489.    electrical-brain-stimulation addict] 1. A hardware hacker,
  5490.    especially one who concentrates on communications hardware.  2. An
  5491.    expert in local-area networks.  A wirehead can be a network
  5492.    software wizard too, but will always have the ability to deal with
  5493.    network hardware, down to the smallest component.  Wireheads are
  5494.    known for their ability to lash up an Ethernet terminator from
  5495.    spare resistors, for example.
  5496.  
  5497. :wirewater: n. Syn. {programming fluid}.  This melds the
  5498.    mainstream slang adjective `wired' (stimulated, up, hyperactive)
  5499.    with `firewater'.
  5500.  
  5501. :wish list: n. A list of desired features or bug fixes that probably
  5502.    won't get done for a long time, usually because the person
  5503.    responsible for the code is too busy or can't think of a clean way
  5504.    to do it.  "OK, I'll add automatic filename completion to the wish
  5505.    list for the new interface." Compare {tick-list features}.
  5506.  
  5507. :within delta of: adj. See {delta}.
  5508.  
  5509. :within epsilon of: adj. See {epsilon}.
  5510.  
  5511. :wizard: n. 1. A person who knows how a complex piece of software
  5512.    or hardware works (that is, who {grok}s it); esp. someone who
  5513.    can find and fix bugs quickly in an emergency.  Someone is a
  5514.    {hacker} if he or she has general hacking ability, but is a wizard
  5515.    with respect to something only if he or she has specific detailed
  5516.    knowledge of that thing.  A good hacker could become a wizard for
  5517.    something given the time to study it.  2. A person who is permitted
  5518.    to do things forbidden to ordinary people; one who has {wheel}
  5519.    privileges on a system.  3. A UNIX expert, esp. a UNIX systems
  5520.    programmer.  This usage is well enough established that `UNIX
  5521.    Wizard' is a recognized job title at some corporations and to most
  5522.    headhunters.  See {guru}, {lord high fixer}.  See also
  5523.    {deep magic}, {heavy wizardry}, {incantation}, {magic},
  5524.    {mutter}, {rain dance}, {voodoo programming}, {wave a
  5525.    dead chicken}.
  5526.  
  5527. :Wizard Book: n. Hal Abelson's, Jerry Sussman's and Julie Sussman's
  5528.    `Structure and Interpretation of Computer Programs' (MIT
  5529.    Press, 1984; ISBN 0-262-01077-1), an excellent computer science text
  5530.    used in introductory courses at MIT.  So called because of the
  5531.    wizard on the jacket.  One of the {bible}s of the LISP/Scheme
  5532.    world.  Also, less commonly, known as the {Purple Book}.
  5533.  
  5534. :wizard mode: [from {rogue}] n. A special access mode of a program or
  5535.    system, usually passworded, that permits some users godlike
  5536.    privileges.  Generally not used for operating systems themselves
  5537.    (`root mode' or `wheel mode' would be used instead).
  5538.  
  5539. :wizardly: adj. Pertaining to wizards.  A wizardly {feature} is one
  5540.    that only a wizard could understand or use properly.
  5541.  
  5542. :womb box: n. 1. [TMRC] Storage space for equipment.  2. [proposed]
  5543.    A variety of hard-shell equipment case with heavy interior padding
  5544.    and/or shaped carrier cutouts in a foam-rubber matrix; mundanely
  5545.    called a `flight case'.  Used for delicate test equipment,
  5546.    electronics, and musical instruments.
  5547.  
  5548. :WOMBAT: [Waste Of Money, Brains, And Time] adj. Applied to problems
  5549.    which are both profoundly {uninteresting} in themselves and
  5550.    unlikely to benefit anyone interesting even if solved.  Often used
  5551.    in fanciful constructions such as `wrestling with a wombat'.  See
  5552.    also {crawling horror}, {SMOP}.  Also note the rather different
  5553.    usage as a metasyntactic variable in {{Commonwealth Hackish}}.
  5554.  
  5555. :wonky: /wong'kee/ [from Australian slang] adj. Yet another
  5556.    approximate synonym for {broken}.  Specifically connotes a
  5557.    malfunction that produces behavior seen as crazy, humorous, or
  5558.    amusingly perverse.  "That was the day the printer's font logic
  5559.    went wonky and everybody's listings came out in Tengwar."  Also in
  5560.    `wonked out'.  See {funky}, {demented}, {bozotic}.
  5561.  
  5562. :woofer: [University of Waterloo] n. Some varieties of wide paper
  5563.    for printers have a perforation 8.5 inches from the left margin
  5564.    that allows the excess on the right-hand side to be torn off when
  5565.    the print format is 80 columns or less wide.  The right-hand excess
  5566.    may be called `woofer'.  This term (like {tweeter}, which see)
  5567.    has been in use at Waterloo since 1972, but is elsewhere unknown.
  5568.    In audio jargon, the word refers to the bass speaker(s) on a hi-fi.
  5569.  
  5570. :workaround: n. 1. A temporary {kluge} inserted in a system
  5571.    under development or test in order to avoid the effects of a
  5572.    {bug} or {misfeature} so that work can continue.
  5573.    Theoretically, workarounds are always replaced by {fix}es; in
  5574.    practice, customers often find themselves living with workarounds
  5575.    in the first couple of releases.  "The code died on NUL characters
  5576.    in the input, so I fixed it to interpret them as spaces."
  5577.    "That's not a fix, that's a workaround!"  2. A procedure to be
  5578.    employed by the user in order to do what some currently non-working
  5579.    feature should do.  Hypothetical example: "Using META-F7 {crash}es
  5580.    the 4.43 build of Weemax, but as a workaround you can type CTRL-R,
  5581.    then SHIFT-F5, and delete the remaining {cruft} by hand."
  5582.  
  5583. :working as designed: [IBM] adj. 1. In conformance to a wrong or
  5584.    inappropriate specification; useful, but misdesigned.
  5585.    2. Frequently used as a sardonic comment on a program's utility.
  5586.    3. Unfortunately also used as a bogus reason for not accepting a
  5587.    criticism or suggestion.  At {IBM}, this sense is used in
  5588.    official documents!  See {BAD}.
  5589.  
  5590. :worm: [from `tapeworm' in John Brunner's novel `The
  5591.    Shockwave Rider', via XEROX PARC] n. A program that propagates
  5592.    itself over a network, reproducing itself as it goes.  Compare
  5593.    {virus}.  Nowadays the term has negative connotations, as it is
  5594.    assumed that only {cracker}s write worms.  Perhaps the
  5595.    best-known example was Robert T. Morris's `Internet Worm' of 1988,
  5596.    a `benign' one that got out of control and hogged hundreds of
  5597.    Suns and VAXen across the U.S.  See also {cracker}, {RTM},
  5598.    {Trojan horse}, {ice}, and {Great Worm, the}.
  5599.  
  5600. :wound around the axle: adj. In an infinite loop.  Often used by older
  5601.    computer types.
  5602.  
  5603. :wrap around: vi. (also n. `wraparound' and v. shorthand
  5604.    `wrap') 1. [techspeak] The action of a counter that starts over
  5605.    at zero or at `minus infinity' (see {infinity}) after its
  5606.    maximum value has been reached, and continues incrementing, either
  5607.    because it is programmed to do so or because of an overflow (as
  5608.    when a car's odometer starts over at 0).  2. To change {phase}
  5609.    gradually and continuously by maintaining a steady wake-sleep cycle
  5610.    somewhat longer than 24 hours, e.g., living six long (28-hour) days
  5611.    in a week (or, equivalently, sleeping at the rate of
  5612.    10 microhertz).  This sense is also called {phase-wrapping}.
  5613.  
  5614. :write-only code: [a play on `read-only memory'] n. Code so
  5615.    arcane, complex, or ill-structured that it cannot be modified or
  5616.    even comprehended by anyone but its author, and possibly not even
  5617.    by him/her.  A {Bad Thing}.
  5618.  
  5619. :write-only language: n. A language with syntax (or semantics)
  5620.    sufficiently dense and bizarre that any routine of significant size
  5621.    is {write-only code}.  A sobriquet applied occasionally to C and
  5622.    often to APL, though {INTERCAL} and {TECO} certainly deserve it
  5623.    more.
  5624.  
  5625. :write-only memory: n. The obvious antonym to `read-only
  5626.    memory'.  Out of frustration with the long and seemingly useless
  5627.    chain of approvals required of component specifications, during
  5628.    which no actual checking seemed to occur, an engineer at Signetics
  5629.    once created a specification for a write-only memory and included
  5630.    it with a bunch of other specifications to be approved.  This
  5631.    inclusion came to the attention of Signetics {management} only
  5632.    when regular customers started calling and asking for pricing
  5633.    information.  Signetics published a corrected edition of the data
  5634.    book and requested the return of the `erroneous' ones.  Later,
  5635.    around 1974, Signetics bought a double-page spread in `Electronics'
  5636.    magazine's April issue and used the spec as an April Fools' Day
  5637.    joke.  Instead of the more conventional characteristic curves, the
  5638.    25120 "fully encoded, 9046 x N, Random Access, write-only-memory"
  5639.    data sheet included diagrams of "bit capacity vs. Temp.",
  5640.    "Iff vs. Vff", "Number of pins remaining vs. number of socket
  5641.    insertions", and "AQL vs. selling price".  The 25120 required a
  5642.    6.3 VAC VFF supply, a +10V VCC, and VDD of 0V, +/- 2%.
  5643.  
  5644. :Wrong Thing: n. A design, action, or decision that is clearly
  5645.    incorrect or inappropriate.  Often capitalized; always emphasized
  5646.    in speech as if capitalized.  The opposite of the {Right Thing};
  5647.    more generally, anything that is not the Right Thing.  In cases
  5648.    where `the good is the enemy of the best', the merely good ---
  5649.    although good --- is nevertheless the Wrong Thing. "In C, the
  5650.    default is for module-level declarations to be visible everywhere,
  5651.    rather than just within the module.  This is clearly the Wrong
  5652.    Thing."
  5653.  
  5654. :wugga wugga: /wuh'g* wuh'g*/ n. Imaginary sound that a computer
  5655.    program makes as it labors with a tedious or difficult task.
  5656.    Compare {cruncha cruncha cruncha}, {grind} (sense 4).
  5657.  
  5658. :wumpus: /wuhm'p*s/ n. The central monster (and, in many
  5659.    versions, the name) of a famous family of very early computer games
  5660.    called "Hunt The Wumpus", dating back at least to 1972 (several
  5661.    years before {ADVENT}) on the Dartmouth Time-Sharing System.
  5662.    The wumpus lived somewhere in a cave with the topology of an
  5663.    dodecahedron's edge/vertex graph (later versions supported other
  5664.    topologies, including an icosahedron and M"obius strip). The player
  5665.    started somewhere at random in the cave with five `crooked
  5666.    arrows'; these could be shot through up to three connected rooms,
  5667.    and would kill the wumpus on a hit (later versions introduced
  5668.    the wounded wumpus, which got very angry).  Unfortunately for
  5669.    players, the movement necessary to map the maze was made hazardous
  5670.    not merely by the wumpus (which would eat you if you stepped on
  5671.    him) but also by bottomless pits and colonies of super bats that would
  5672.    pick you up and drop you at a random location (later versions added
  5673.    `anaerobic termites' that ate arrows, bat migrations, and
  5674.    earthquakes that randomly changed pit locations).
  5675.  
  5676.    This game appears to have been the first to use a non-random
  5677.    graph-structured map (as opposed to a rectangular grid like the
  5678.    even older Star Trek games).  In this respect, as in the
  5679.    dungeon-like setting and its terse, amusing messages, it prefigured
  5680.    {ADVENT} and {Zork} and was directly ancestral to both (Zork
  5681.    acknowledged this heritage by including a super-bat colony).
  5682.    Today, a port is distributed with SunOS and as freeware for the
  5683.    Mac.  A C emulation of the original Basic game is in circulation
  5684.    as freeware on the net.
  5685.  
  5686. :WYSIAYG: /wiz'ee-ayg/ adj. Describes a user interface under
  5687.    which "What You See Is *All* You Get"; an unhappy variant of
  5688.    {WYSIWYG}.  Visual, `point-and-shoot'-style interfaces tend to
  5689.    have easy initial learning curves, but also to lack depth; they
  5690.    often frustrate advanced users who would be better served by a
  5691.    command-style interface.  When this happens, the frustrated user
  5692.    has a WYSIAYG problem.  This term is most often used of editors,
  5693.    word processors, and document formatting programs.  WYSIWYG
  5694.    `desktop publishing' programs, for example, are a clear win for
  5695.    creating small documents with lots of fonts and graphics in them,
  5696.    especially things like newsletters and presentation slides.  When
  5697.    typesetting book-length manuscripts, on the other hand, scale
  5698.    changes the nature of the task; one quickly runs into WYSIAYG
  5699.    limitations, and the increased power and flexibility of a
  5700.    command-driven formatter like {{TeX}} or UNIX's `troff(1)'
  5701.    becomes not just desirable but a necessity.  Compare {YAFIYGI}.
  5702.  
  5703. :WYSIWYG: /wiz'ee-wig/ adj. Describes a user interface under
  5704.    which "What You See Is What You Get", as opposed to one that uses
  5705.    more-or-less obscure commands that do not result in immediate
  5706.    visual feedback.  True WYSIWYG in environments supporting multiple
  5707.    fonts or graphics is a a rarely-attained ideal; there are variants
  5708.    of this term to express real-world manifestations including
  5709.    WYSIAWYG (What You See Is *Almost* What You Get) and
  5710.    WYSIMOLWYG (What You See Is More or Less What You Get).  All these
  5711.    can be mildly derogatory, as they are often used to refer to
  5712.    dumbed-down {user-friendly} interfaces targeted at
  5713.    non-programmers; a hacker has no fear of obscure commands (compare
  5714.    {WYSIAYG}).  On the other hand, {EMACS} was one of the very first
  5715.    WYSIWYG editors, replacing (actually, at first overlaying) the
  5716.    extremely obscure, command-based {TECO}.  See also {WIMP
  5717.    environment}.  [Oddly enough, WYSIWYG has already made it into the
  5718.    OED, in lower case yet. --- ESR]
  5719.  
  5720. = X =
  5721. =====
  5722.  
  5723. :X: /X/ n. 1. Used in various speech and writing contexts (also
  5724.    in lowercase) in roughly its algebraic sense of `unknown within a
  5725.    set defined by context' (compare {N}).  Thus, the abbreviation
  5726.    680x0 stands for 68000, 68010, 68020, 68030, or 68040, and 80x86
  5727.    stands for 80186, 80286 80386 or 80486 (note that a UNIX hacker
  5728.    might write these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86
  5729.    respectively; see {glob}).  2. [after the name of an earlier
  5730.    window system called `W'] An over-sized, over-featured,
  5731.    over-engineered and incredibly over-complicated window system
  5732.    developed at MIT and widely used on UNIX systems.
  5733.  
  5734. :XEROX PARC: The famed Palo Alto Research Center.  For more than a
  5735.    decade, from the early 1970s into the mid-1980s, PARC yielded an
  5736.    astonishing volume of groundbreaking hardware and software
  5737.    innovations.  The modern mice, windows, and icons style of software
  5738.    interface was invented there.  So was the laser printer and the
  5739.    local-area network; and PARC's series of D machines anticipated the
  5740.    powerful personal computers of the 1980s by a decade.  Sadly, the
  5741.    prophets at PARC were without honor in their own company, so much
  5742.    so that it became a standard joke to describe PARC as a place that
  5743.    specialized in developing brilliant ideas for everyone else.
  5744.  
  5745.    The stunning shortsightedness and obtusity of XEROX's top-level
  5746.    {suit}s has been well anatomized in `Fumbling The Future:
  5747.    How XEROX Invented, Then Ignored, the First Personal Computer' by
  5748.    Douglas K. Smith and Robert C. Alexander (William Morrow & Co,
  5749.    1988, ISBN 0-688-09511-9).
  5750.  
  5751. :XOFF: /X'of/ n. Syn. {control-S}.
  5752.  
  5753. :XON: /X'on/ n. Syn. {control-Q}.
  5754.  
  5755. :xor: /X'or/, /kzor/ conj. Exclusive or.  `A xor B' means
  5756.    `A or B, but not both'.  "I want to get cherry pie xor a
  5757.    banana split."  This derives from the technical use of the term as
  5758.    a function on truth-values that is true if exactly one of its two
  5759.    arguments is true.
  5760.  
  5761. :xref: /X'ref/ vt., n. Hackish standard abbreviation for
  5762.    `cross-reference'.
  5763.  
  5764. :XXX: /X-X-X/ n. A marker that attention is needed.
  5765.    Commonly used in program comments to indicate areas that are kluged
  5766.    up or need to be.  Some hackers liken `XXX' to the notional
  5767.    heavy-porn movie rating.  Compre {FIXME}.
  5768.  
  5769. :xyzzy: /X-Y-Z-Z-Y/, /X-Y-ziz'ee/, /ziz'ee/, or /ik-ziz'ee/
  5770.    [from the ADVENT game] adj. The {canonical} `magic word'.
  5771.    This comes from {ADVENT}, in which the idea is to explore an
  5772.    underground cave with many rooms and to collect the treasures you
  5773.    find there.  If you type `xyzzy' at the appropriate time, you can
  5774.    move instantly between two otherwise distant points.  If,
  5775.    therefore, you encounter some bit of {magic}, you might remark
  5776.    on this quite succinctly by saying simply "Xyzzy!"  "Ordinarily
  5777.    you can't look at someone else's screen if he has protected it, but
  5778.    if you type quadruple-bucky-clear the system will let you do it
  5779.    anyway."  "Xyzzy!"  Xyzzy has actually been implemented as an
  5780.    undocumented no-op command on several OSes; in Data General's
  5781.    AOS/VS, for example, it would typically respond "Nothing
  5782.    happens", just as {ADVENT} did if the magic was invoked at the
  5783.    wrong spot or before a player had performed the action that enabled
  5784.    the word.  In more recent 32-bit versions, by the way, AOS/VS
  5785.    responds "Twice as much happens".  See also {plugh}.
  5786.  
  5787. = Y =
  5788. =====
  5789.  
  5790. :YA-: [Yet Another] abbrev. In hackish acronyms this almost
  5791.    invariably expands to {Yet Another}, following the precedent set
  5792.    by UNIX `yacc(1)' (Yet Another Compiler-Compiler).  See
  5793.    {YABA}.
  5794.  
  5795. :YABA: /ya'b*/ [Cambridge] n. Yet Another Bloody Acronym.
  5796.    Whenever some program is being named, someone invariably suggests
  5797.    that it be given a name that is acronymic.  The response from those
  5798.    with a trace of originality is to remark ironically that the
  5799.    proposed name would then be `YABA-compatible'.  Also used in
  5800.    response to questions like "What is WYSIWYG?"  See also
  5801.    {TLA}.
  5802.  
  5803. :YAFIYGI: /yaf'ee-y:-gee/ adj.  [coined in response to WYSIWYG]
  5804.    Describes the command-oriented ed/vi/nroff/TeX style of word
  5805.    processing or other user interface, the opposite of {WYSIWYG}.
  5806.    Stands for "You asked for it, you got it", because what you 
  5807.    actually asked for is often not apparent until long after it is too
  5808.    late to do anything about it.  Used to denote perversity ("Real
  5809.    Programmers use YAFIYGI tools...and *like* it!") or, less 
  5810.    often, a necessary tradeoff ("Only a YAFIYGI tool can have full
  5811.    programmable flexibility in its interface.").
  5812.  
  5813. :YAUN: /yawn/ [Acronym for `Yet Another UNIX Nerd'] n. Reported
  5814.    from the San Diego Computer Society (predominantly a microcomputer
  5815.    users' group) as a good-natured punning insult aimed at UNIX
  5816.    zealots.
  5817.  
  5818. :Yellow Book: [proposed] n. The print version of this Jargon File;
  5819.    `The New Hacker's Dictionary', MIT Press, 1991 (ISBN
  5820.    0-262-68069-6).  Includes all the material in the 2.9.6 version of
  5821.    the File, plus a Foreword by Guy L. Steele Jr. and a Preface by
  5822.    Eric S. Raymond.  Most importantly, the book version is nicely
  5823.    typeset and includes almost all of the infamous Crunchly cartoons
  5824.    by the Great Quux, each attached to an appropriate entry.
  5825.  
  5826. :yellow wire: [IBM] n. Repair wires used when connectors
  5827.    (especially ribbon connectors) got broken due to some schlemiel
  5828.    pinching them, or to reconnect cut traces after the FE mistakenly
  5829.    cut one.  Compare {blue wire}, {purple wire}, {red wire}.
  5830.  
  5831. :Yet Another: adj. [From UNIX's `yacc(1)', `Yet Another
  5832.    Compiler-Compiler', a LALR parser generator] 1. Of your own work: A
  5833.    humorous allusion often used in titles to acknowledge that the
  5834.    topic is not original, though the content is.  As in `Yet Another
  5835.    AI Group' or `Yet Another Simulated Annealing Algorithm'.  2. Of
  5836.    others' work: Describes something of which there are already far
  5837.    too many.  See also {YA-}, {YABA}, {YAUN}.
  5838.  
  5839. :YKYBHTL: An abbreviation of `You Know You've Been Hacking Too Long'
  5840.    established on the USENET group alt.folklore.computers during
  5841.    extended discussion of the indicated entry in the Jargon File.
  5842.  
  5843. :You are not expected to understand this: cav. [UNIX] The canonical
  5844.    comment describing something {magic} or too complicated to
  5845.    bother explaining properly.  From an infamous comment in the
  5846.    context-switching code of the V6 UNIX kernel.
  5847.  
  5848. :You know you've been hacking too long when...: The set-up line
  5849.    for a genre of one-liners told by hackers about themselves.  These
  5850.    include the following:
  5851.  
  5852.    *    not only do you check your email more often than your paper
  5853.         mail, but you remember your {network address} faster than your
  5854.         postal one.
  5855.    *    your {SO} kisses you on the neck and the first thing you
  5856.         think is "Uh, oh, {priority interrupt}."
  5857.    *    you go to balance your checkbook and discover that you're
  5858.         doing it in octal.
  5859.    *    your computers have a higher street value than your car.
  5860.    *    in your universe, `round numbers' are powers of 2, not 10.
  5861.    *    more than once, you have woken up recalling a dream in
  5862.         some programming language.
  5863.    *    you realize you have never seen half of your best friends.
  5864.  
  5865.    [An early version of this entry said "All but one of these
  5866.    have been reliably reported as hacker traits (some of them quite
  5867.    often).  Even hackers may have trouble spotting the ringer."  The
  5868.    ringer was balancing one's checkbook in octal, which I made up out
  5869.    of whole cloth.  Although more respondents picked that one
  5870.    out as fiction than any of the others, I also received multiple
  5871.    independent reports of its actually happening, including a report
  5872.    that Grace Hopper used to tell such a story about herself. --- ESR]
  5873.  
  5874. :Your mileage may vary: cav. [from the standard disclaimer attached
  5875.    to EPA mileage ratings by American car manufacturers] 1. A ritual
  5876.    warning often found in UNIX freeware distributions.  Translates
  5877.    roughly as "Hey, I tried to write this portably, but who
  5878.    *knows* what'll happen on your system?"  2. A qualifier more
  5879.    generally attached to advice.  "I find that sending flowers works
  5880.    well, but your mileage may vary."
  5881.  
  5882. :Yow!: /yow/ [from "Zippy the Pinhead" comix] interj. A favored hacker
  5883.    expression of humorous surprise or emphasis.  "Yow!  Check out what
  5884.    happens when you twiddle the foo option on this display hack!"
  5885.    Compare {gurfle}.
  5886.  
  5887. :yoyo mode: n. The state in which the system is said to be when it
  5888.    rapidly alternates several times between being up and being down.
  5889.    Interestingly (and perhaps not by coincidence), many hardware
  5890.    vendors give out free yoyos at Usenix exhibits.
  5891.  
  5892.    Sun Microsystems gave out logoized yoyos at SIGPLAN '88.  Tourists
  5893.    staying at one of Atlanta's most respectable hotels were
  5894.    subsequently treated to the sight of 200 of the country's top
  5895.    computer scientists testing yo-yo algorithms in the lobby.
  5896.  
  5897. :Yu-Shiang Whole Fish: /yoo-shyang hohl fish/ n. obs. The
  5898.    character gamma (extended SAIL ASCII 0001001), which with a loop in
  5899.    its tail looks like a little fish swimming down the page.  The term
  5900.    is actually the name of a Chinese dish in which a fish is cooked
  5901.    whole (not {parse}d) and covered with Yu-Shiang (or Yu-Hsiang)
  5902.    sauce.  Usage: primarily by people on the MIT LISP Machine, which
  5903.    could display this character on the screen.  Tends to elicit
  5904.    incredulity from people who hear about it second-hand.
  5905.  
  5906. = Z =
  5907. =====
  5908.  
  5909. :zap: 1. n. Spiciness.  2. vt. To make food spicy.  3. vt. To make
  5910.    someone `suffer' by making his food spicy.  (Most hackers love
  5911.    spicy food.  Hot-and-sour soup is considered wimpy unless it makes
  5912.    you wipe your nose for the rest of the meal.)  See {zapped}.
  5913.    4. vt. To modify, usually to correct; esp. used when the action
  5914.    is performed with a debugger or binary patching tool.  Also implies
  5915.    surgical precision.  "Zap the debug level to 6 and run it again."
  5916.    In the IBM mainframe world, binary patches are applied to programs
  5917.    or to the OS with a program called `superzap', whose file name is
  5918.    `IMASPZAP' (possibly contrived from I M A SuPerZAP).  5. vt. To
  5919.    erase or reset.  6. To {fry} a chip with static electricity.
  5920.    "Uh oh --- I think that lightning strike may have zapped the disk
  5921.    controller."
  5922.  
  5923. :zapped: adj. Spicy.  This term is used to distinguish between food
  5924.    that is hot (in temperature) and food that is *spicy*-hot.
  5925.    For example, the Chinese appetizer Bon Bon Chicken is a kind of
  5926.    chicken salad that is cold but zapped; by contrast, {vanilla}
  5927.    wonton soup is hot but not zapped.  See also {{oriental food}},
  5928.    {laser chicken}.  See {zap}, senses 1 and 2.
  5929.  
  5930. :zen: vt. To figure out something by meditation or by a sudden flash
  5931.    of enlightenment.  Originally applied to bugs, but occasionally
  5932.    applied to problems of life in general.  "How'd you figure out the
  5933.    buffer allocation problem?"  "Oh, I zenned it."  Contrast {grok},
  5934.    which connotes a time-extended version of zenning a system.
  5935.    Compare {hack mode}.  See also {guru}.
  5936.  
  5937. :zero: vt. 1. To set to 0.  Usually said of small pieces of data,
  5938.    such as bits or words (esp. in the construction `zero out').  2. To
  5939.    erase; to discard all data from.  Said of disks and directories,
  5940.    where `zeroing' need not involve actually writing zeroes throughout
  5941.    the area being zeroed.  One may speak of something being
  5942.    `logically zeroed' rather than being `physically zeroed'.  See
  5943.    {scribble}.
  5944.  
  5945. :zero-content: adj. Syn. {content-free}.
  5946.  
  5947. :zeroth: /zee'rohth/ adj. First.  Among software designers, comes
  5948.    from C's and LISP's 0-based indexing of arrays.  Hardware people
  5949.    also tend to start counting at 0 instead of 1; this is natural
  5950.    since, e.g., the 256 states of 8 bits correspond to the binary
  5951.    numbers 0, 1, ..., 255 and the digital devices known as `counters'
  5952.    count in this way.
  5953.  
  5954.    Hackers and computer scientists often like to call the first
  5955.    chapter of a publication `chapter 0', especially if it is of an
  5956.    introductory nature (one of the classic instances was in the First
  5957.    Edition of {K&R}).  In recent years this trait has also been
  5958.    observed among many pure mathematicians (who have an independent
  5959.    tradition of numbering from 0).  Zero-based numbering tends to
  5960.    reduce {fencepost error}s, though it cannot eliminate them
  5961.    entirely.
  5962.  
  5963. :zigamorph: /zig'*-morf/ n. Hex FF (11111111) when used as a
  5964.    delimiter or {fence} character.  Usage: primarily at IBM
  5965.    shops.
  5966.  
  5967. :zip: [primarily MS-DOS] vt. To create a compressed archive from a
  5968.    group of files using PKWare's PKZIP or a compatible archiver.  Its
  5969.    use is spreading now that portable implementations of the algorithm
  5970.    have been written.  Commonly used as follows: "I'll zip it up and
  5971.    send it to you."  See {arc}, {tar and feather}.
  5972.  
  5973. :zipperhead: [IBM] n. A person with a closed mind.
  5974.  
  5975. :zombie: [UNIX] n. A process that has died but has not yet
  5976.    relinquished its process table slot (because the parent process
  5977.    hasn't executed a `wait(2)' for it yet).  These can be seen in
  5978.    `ps(1)' listings occasionally.  Compare {orphan}.
  5979.  
  5980. :zorch: /zorch/ 1. [TMRC] v. To attack with an inverse heat sink.
  5981.    2. [TMRC] v. To travel, with v approaching c [that
  5982.    is, with velocity approaching lightspeed --- ESR].  3. [MIT] v. To
  5983.    propel something very quickly.  "The new comm software is very
  5984.    fast; it really zorches files through the network."  4. [MIT] n.
  5985.    Influence.  Brownie points.  Good karma.  The intangible and fuzzy
  5986.    currency in which favors are measured.  "I'd rather not ask him
  5987.    for that just yet; I think I've used up my quota of zorch with him
  5988.    for the week."  5. [MIT] n. Energy, drive, or ability.  "I think
  5989.    I'll {punt} that change for now; I've been up for 30 hours
  5990.    and I've run out of zorch."  6. [MIT] To flunk an exam or course.
  5991.  
  5992. :Zork: /zork/ n. The second of the great early experiments in computer
  5993.    fantasy gaming; see {ADVENT}.  Originally written on MIT-DM
  5994.    during the late 1970s, later distributed with BSD UNIX (as a patched,
  5995.    sourceless RT-11 FORTRAN binary; see {retrocomputing}) and
  5996.    commercialized as `The Zork Trilogy' by Infocom.  The FORTRAN
  5997.    source was later rewritten for portability and released to USENET
  5998.    under the name "Dungeon".  Both FORTRAN "Dungeon" and
  5999.    translated C versions are available at many FTP sites.
  6000.  
  6001. :zorkmid: /zork'mid/ n. The canonical unit of currency in
  6002.    hacker-written games.  This originated in {zork} but has spread
  6003.    to {nethack} and is referred to in several other games.
  6004.  
  6005. = [^A-Za-z] (see {regexp}) =
  6006. ============================
  6007.  
  6008. :'Snooze: /snooz/ [FidoNet] n. Fidonews, the weekly official on-line
  6009.    newsletter of FidoNet.  As the editorial policy of Fidonews is
  6010.    "anything that arrives, we print", there are often large articles
  6011.    completely unrelated to FidoNet, which in turn tend to elicit
  6012.    {flamage} in subsequent issues.
  6013.  
  6014. :(TM): // [USENET] ASCII rendition of the trademark-superscript symbol
  6015.    appended to phrases that the author feels should be recorded for
  6016.    posterity, perhaps in future editions of this lexicon.  Sometimes
  6017.    used ironically as a form of protest against the recent spate of
  6018.    software and algorithm patents and `look and feel' lawsuits.  See
  6019.    also {UN*X}.
  6020.  
  6021. :-oid: [from `android'] suff. 1. This suffix is used as in
  6022.    mainstream English to indicate a poor imitation, a counterfeit, or
  6023.    some otherwise slightly bogus resemblance.  Hackers will happily
  6024.    use it with all sorts of non-Greco/Latin stem words that wouldn't
  6025.    keep company with it in mainstream English.  For example, "He's a
  6026.    nerdoid" means that he superficially resembles a nerd but can't
  6027.    make the grade; a `modemoid' might be a 300-baud box (Real Modems
  6028.    run at 9600 or up); a `computeroid' might be any {bitty box}.
  6029.    The word `keyboid' could be used to describe a {chiclet
  6030.    keyboard}, but would have to be written; spoken, it would confuse
  6031.    the listener as to the speaker's city of origin.  2. There is a
  6032.    more specific sense of `-oid' as an indicator for `resembling an
  6033.    android' which in the past has been confined to science-fiction
  6034.    fans and hackers.  It too has recently (in 1991) started to go
  6035.    mainstream (most notably in the term `trendoid' for victims of
  6036.    terminal hipness).  This is probably traceable to the
  6037.    popularization of the term {droid} in "Star Wars" and its
  6038.    sequels.
  6039.  
  6040.    Coinages in both forms have been common in science fiction for at
  6041.    least fifty years, and hackers (who are often SF fans) have
  6042.    probably been making `-oid' jargon for almost that long
  6043.    [though GLS and I can personally confirm only that they were
  6044.    already common in the mid-1970s --- ESR].
  6045.  
  6046. :-ware: [from `software'] suff. Commonly used to form jargon terms
  6047.    for classes of software.  For examples, see {careware},
  6048.    {crippleware}, {crudware}, {freeware}, {fritterware},
  6049.    {guiltware}, {liveware}, {meatware}, {payware},
  6050.    {psychedelicware}, {shareware}, {shelfware}, {vaporware},
  6051.    {wetware}.
  6052.  
  6053. :/dev/null: /dev-nuhl/ [from the UNIX null device, used as a data
  6054.    sink] n. A notional `black hole' in any information space being
  6055.    discussed, used, or referred to.  A controversial posting, for
  6056.    example, might end "Kudos to rasputin@kremlin.org, flames to
  6057.    /dev/null".  See {bit bucket}.
  6058.  
  6059. :0: Numeric zero, as opposed to the letter `O' (the 15th letter of
  6060.    the English alphabet).  In their unmodified forms they look a lot
  6061.    alike, and various kluges invented to make them visually distinct
  6062.    have compounded the confusion.  If your zero is center-dotted and
  6063.    letter-O is not, or if letter-O looks almost rectangular but zero
  6064.    looks more like an American football stood on end (or the reverse),
  6065.    you're probably looking at a modern character display (though the
  6066.    dotted zero seems to have originated as an option on IBM 3270
  6067.    controllers).  If your zero is slashed but letter-O is not, you're
  6068.    probably looking at an old-style ASCII graphic set descended from
  6069.    the default typewheel on the venerable ASR-33 Teletype
  6070.    (Scandinavians, for whom slashed-O is a letter, curse this
  6071.    arrangement).  If letter-O has a slash across it and the zero does
  6072.    not, your display is tuned for a very old convention used at IBM
  6073.    and a few other early mainframe makers (Scandinavians curse
  6074.    *this* arrangement even more, because it means two of their
  6075.    letters collide).  Some Burroughs/Unisys equipment displays a zero
  6076.    with a *reversed* slash.  And yet another convention common on
  6077.    early line printers left zero unornamented but added a tail or hook
  6078.    to the letter-O so that it resembled an inverted Q or cursive
  6079.    capital letter-O.  Are we sufficiently confused yet?
  6080.  
  6081. :1TBS: // n. The "One True Brace Style"; see {indent style}.
  6082.  
  6083. :120 reset: /wuhn-twen'tee ree'set/ [from 120 volts, U.S. wall
  6084.    voltage] n. To cycle power on a machine in order to reset or unjam
  6085.    it.  Compare {Big Red Switch}, {power cycle}.
  6086.  
  6087. :2: infix. In translation software written by hackers, infix 2 often
  6088.    represents the syllable *to* with the connotation
  6089.    `translate to': as in dvi2ps (DVI to PostScript), int2string
  6090.    (integer to string), and texi2roff (Texinfo to [nt]roff).
  6091.  
  6092. :@-party: /at'par`tee/ [from the @-sign in an Internet address]
  6093.    n. (alt. `@-sign party' /at'si:n par`tee/) A semi-closed
  6094.    party thrown for hackers at a science-fiction convention (esp.
  6095.    the annual Worldcon); one must have a {network address} to
  6096.    get in, or at least be in company with someone who does.  One of
  6097.    the most reliable opportunities for hackers to meet face to face
  6098.    with people who might otherwise be represented by mere phosphor
  6099.    dots on their screens.  Compare {boink}.
  6100.  
  6101. :@Begin: // See {\begin}.
  6102.  
  6103. :\begin: // [from the LaTeX command] With \end, used
  6104.    humorously in writing to indicate a context or to remark on the
  6105.    surrounded text.  For example:
  6106.  
  6107.      \begin{flame}
  6108.      Predicate logic is the only good programming
  6109.      language.  Anyone who would use anything else
  6110.      is an idiot.  Also, all computers should be
  6111.      tredecimal instead of binary.
  6112.      \end{flame}
  6113.  
  6114.    The Scribe users at CMU and elsewhere used to use @Begin/@End in
  6115.    an identical way (LaTeX was built to resemble Scribe).  On USENET,
  6116.    this construct would more frequently be rendered as `<FLAME ON>'
  6117.    and `<FLAME OFF>'.
  6118. :(Lexicon Entries End Here):
  6119.  
  6120. :Appendix A: Hacker Folklore
  6121. ****************************
  6122.  
  6123. This appendix contains several legends and fables that illuminate the
  6124. meaning of various entries in the lexicon.
  6125.  
  6126. :The Meaning of `Hack':
  6127. =======================
  6128.  
  6129. "The word {hack} doesn't really have 69 different meanings", according
  6130. to MIT hacker Phil Agre.  "In fact, {hack} has only one meaning, an
  6131. extremely subtle and profound one which defies articulation.  Which
  6132. connotation is implied by a given use of the word depends in similarly
  6133. profound ways on the context.  Similar remarks apply to a couple of
  6134. other hacker words, most notably {random}."
  6135.  
  6136. Hacking might be characterized as `an appropriate application of
  6137. ingenuity'.  Whether the result is a quick-and-dirty patchwork job or a
  6138. carefully crafted work of art, you have to admire the cleverness that
  6139. went into it.
  6140.  
  6141. An important secondary meaning of {hack} is `a creative practical
  6142. joke'.  This kind of hack is easier to explain to non-hackers than the
  6143. programming kind.  Of course, some hacks have both natures; see the
  6144. lexicon entries for {pseudo} and {kgbvax}.  But here are some examples
  6145. of pure practical jokes that illustrate the hacking spirit:
  6146.  
  6147.      In 1961, students from Caltech (California Institute of Technology,
  6148.      in Pasadena) hacked the Rose Bowl football game.  One student posed
  6149.      as a reporter and `interviewed' the director of the University of
  6150.      Washington card stunts (such stunts involve people in the stands
  6151.      who hold up colored cards to make pictures).  The reporter learned
  6152.      exactly how the stunts were operated, and also that the director
  6153.      would be out to dinner later.
  6154.  
  6155.      While the director was eating, the students (who called themselves
  6156.      the `Fiendish Fourteen') picked a lock and stole a blank direction
  6157.      sheet for the card stunts.  They then had a printer run off 2300
  6158.      copies of the blank.  The next day they picked the lock again and
  6159.      stole the master plans for the stunts --- large sheets of graph
  6160.      paper colored in with the stunt pictures.  Using these as a guide,
  6161.      they made new instructions for three of the stunts on the
  6162.      duplicated blanks.  Finally, they broke in once more, replacing the
  6163.      stolen master plans and substituting the stack of diddled
  6164.      instruction sheets for the original set.
  6165.  
  6166.      The result was that three of the pictures were totally different.
  6167.      Instead of `WASHINGTON', the word ``CALTECH' was flashed.  Another
  6168.      stunt showed the word `HUSKIES', the Washington nickname, but
  6169.      spelled it backwards.  And what was supposed to have been a picture
  6170.      of a husky instead showed a beaver.  (Both Caltech and MIT use the
  6171.      beaver --- nature's engineer --- as a mascot.)
  6172.  
  6173.      After the game, the Washington faculty athletic representative
  6174.      said: "Some thought it ingenious; others were indignant."  The
  6175.      Washington student body president remarked: "No hard feelings, but
  6176.      at the time it was unbelievable.  We were amazed."
  6177.  
  6178. This is now considered a classic hack, particularly because revising the
  6179. direction sheets constituted a form of programming.
  6180.  
  6181. Here is another classic hack:
  6182.  
  6183.      On November 20, 1982, MIT hacked the Harvard-Yale football game.
  6184.      Just after Harvard's second touchdown against Yale, in the first
  6185.      quarter, a small black ball popped up out of the ground at the
  6186.      40-yard line, and grew bigger, and bigger, and bigger.  The letters
  6187.      `MIT' appeared all over the ball.  As the players and officials
  6188.      stood around gawking, the ball grew to six feet in diameter and
  6189.      then burst with a bang and a cloud of white smoke.
  6190.  
  6191.      The `Boston Globe' later reported: "If you want to know the truth,
  6192.      MIT won The Game."
  6193.  
  6194.      The prank had taken weeks of careful planning by members of MIT's
  6195.      Delta Kappa Epsilon fraternity.  The device consisted of a weather
  6196.      balloon, a hydraulic ram powered by Freon gas to lift it out of the
  6197.      ground, and a vacuum-cleaner motor to inflate it.  They made eight
  6198.      separate expeditions to Harvard Stadium between 1 and 5 A.M.,
  6199.      locating an unused 110-volt circuit in the stadium and running
  6200.      buried wires from the stadium circuit to the 40-yard line, where
  6201.      they buried the balloon device.  When the time came to activate the
  6202.      device, two fraternity members had merely to flip a circuit breaker
  6203.      and push a plug into an outlet.
  6204.  
  6205.      This stunt had all the earmarks of a perfect hack: surprise,
  6206.      publicity, the ingenious use of technology, safety, and
  6207.      harmlessness.  The use of manual control allowed the prank to be
  6208.      timed so as not to disrupt the game (it was set off between plays,
  6209.      so the outcome of the game would not be unduly affected).  The
  6210.      perpetrators had even thoughtfully attached a note to the balloon
  6211.      explaining that the device was not dangerous and contained no
  6212.      explosives.
  6213.  
  6214.      Harvard president Derek Bok commented: "They have an awful lot of
  6215.      clever people down there at MIT, and they did it again."  President
  6216.      Paul E. Gray of MIT said: "There is absolutely no truth to the
  6217.      rumor that I had anything to do with it, but I wish there were."
  6218.  
  6219. The hacks above are verifiable history; they can be proved to have
  6220. happened.  Many other classic-hack stories from MIT and elsewhere,
  6221. though retold as history, have the characteristics of what Jan Brunvand
  6222. has called `urban folklore' (see {FOAF}).  Perhaps the best known of
  6223. these is the legend of the infamous trolley-car hack, an alleged
  6224. incident in which engineering students are said to have welded a trolley
  6225. car to its tracks with thermite.  Numerous versions of this have been
  6226. recorded from the 1940s to the present, most set at MIT but at least one
  6227. very detailed version set at CMU.
  6228.  
  6229. Brian Leibowitz has researched MIT hacks both real and mythical
  6230. extensively; the interested reader is referred to his delightful
  6231. pictorial compendium `The Journal of the Institute for Hacks,
  6232. Tomfoolery, and Pranks' (MIT Museum, 1990; ISBN 0-917027-03-5).
  6233.  
  6234. Finally, here is a story about one of the classic computer hacks.
  6235.  
  6236.      Back in the mid-1970s, several of the system support staff at
  6237.      Motorola discovered a relatively simple way to crack system
  6238.      security on the Xerox CP-V timesharing system.  Through a simple
  6239.      programming strategy, it was possible for a user program to trick
  6240.      the system into running a portion of the program in `master mode'
  6241.      (supervisor state), in which memory protection does not apply.  The
  6242.      program could then poke a large value into its `privilege level'
  6243.      byte (normally write-protected) and could then proceed to bypass
  6244.      all levels of security within the file-management system, patch the
  6245.      system monitor, and do numerous other interesting things.  In
  6246.      short, the barn door was wide open.
  6247.  
  6248.      Motorola quite properly reported this problem to Xerox via an
  6249.      official `level 1 SIDR' (a bug report with an intended urgency of
  6250.      `needs to be fixed yesterday').  Because the text of each SIDR was
  6251.      entered into a database that could be viewed by quite a number of
  6252.      people, Motorola followed the approved procedure: they simply
  6253.      reported the problem as `Security SIDR', and attached all of the
  6254.      necessary documentation, ways-to-reproduce, etc.
  6255.  
  6256.      The CP-V people at Xerox sat on their thumbs; they either didn't
  6257.      realize the severity of the problem, or didn't assign the necessary
  6258.      operating-system-staff resources to develop and distribute an
  6259.      official patch.
  6260.  
  6261.      Months passed.  The Motorola guys pestered their Xerox
  6262.      field-support rep, to no avail.  Finally they decided to take
  6263.      direct action, to demonstrate to Xerox management just how easily
  6264.      the system could be cracked and just how thoroughly the security
  6265.      safeguards could be subverted.
  6266.  
  6267.      They dug around in the operating-system listings and devised a
  6268.      thoroughly devilish set of patches.  These patches were then
  6269.      incorporated into a pair of programs called `Robin Hood' and `Friar
  6270.      Tuck'.  Robin Hood and Friar Tuck were designed to run as `ghost
  6271.      jobs' (daemons, in UNIX terminology); they would use the existing
  6272.      loophole to subvert system security, install the necessary patches,
  6273.      and then keep an eye on one another's statuses in order to keep the
  6274.      system operator (in effect, the superuser) from aborting them.
  6275.  
  6276.      One fine day, the system operator on the main CP-V software
  6277.      development system in El Segundo was surprised by a number of
  6278.      unusual phenomena.  These included the following:
  6279.  
  6280.         * Tape drives would rewind and dismount their tapes in the
  6281.           middle of a job.
  6282.         * Disk drives would seek back and forth so rapidly that they
  6283.           would attempt to walk across the floor (see {walking
  6284.           drives}).
  6285.         * The card-punch output device would occasionally start up of
  6286.           itself and punch a {lace card}.  These would usually jam in
  6287.           the punch.
  6288.         * The console would print snide and insulting messages from
  6289.           Robin Hood to Friar Tuck, or vice versa.
  6290.         * The Xerox card reader had two output stackers; it could be
  6291.           instructed to stack into A, stack into B, or stack into A
  6292.           (unless a card was unreadable, in which case the bad card was
  6293.           placed into stacker B).  One of the patches installed by the
  6294.           ghosts added some code to the card-reader driver... after
  6295.           reading a card, it would flip over to the opposite stacker.
  6296.           As a result, card decks would divide themselves in half when
  6297.           they were read, leaving the operator to recollate them
  6298.           manually.
  6299.  
  6300.      Naturally, the operator called in the operating-system developers.
  6301.      They found the bandit ghost jobs running, and X'ed them... and were
  6302.      once again surprised.  When Robin Hood was X'ed, the following
  6303.      sequence of events took place:
  6304.  
  6305.           !X id1
  6306.  
  6307.           id1: Friar Tuck... I am under attack!  Pray save me!
  6308.           id1: Off (aborted)
  6309.  
  6310.           id2: Fear not, friend Robin!  I shall rout the Sheriff
  6311.                of Nottingham's men!
  6312.  
  6313.           id1: Thank you, my good fellow!
  6314.  
  6315.      Each ghost-job would detect the fact that the other had been
  6316.      killed, and would start a new copy of the recently slain program
  6317.      within a few milliseconds.  The only way to kill both ghosts was to
  6318.      kill them simultaneously (very difficult) or to deliberately crash
  6319.      the system.
  6320.  
  6321.      Finally, the system programmers did the latter --- only to find
  6322.      that the bandits appeared once again when the system rebooted!  It
  6323.      turned out that these two programs had patched the boot-time OS
  6324.      image (the kernel file, in UNIX terms) and had added themselves to
  6325.      the list of programs that were to be started at boot time.
  6326.  
  6327.      The Robin Hood and Friar Tuck ghosts were finally eradicated when
  6328.      the system staff rebooted the system from a clean boot-tape and
  6329.      reinstalled the monitor.  Not long thereafter, Xerox released a
  6330.      patch for this problem.
  6331.  
  6332.      It is alleged that Xerox filed a complaint with Motorola's management
  6333.      about the merry-prankster actions of the two employees in question.
  6334.      It is not recorded that any serious disciplinary action was taken
  6335.      against either of them.
  6336.  
  6337. :TV Typewriters: A Tale of Hackish Ingenuity
  6338. ============================================
  6339.  
  6340. Here is a true story about a glass tty: One day an MIT hacker was in a
  6341. motorcycle accident and broke his leg.  He had to stay in the hospital
  6342. quite a while, and got restless because he couldn't {hack}.  Two of his
  6343. friends therefore took a terminal and a modem for it to the hospital, so
  6344. that he could use the computer by telephone from his hospital bed.
  6345.  
  6346. Now this happened some years before the spread of home computers, and
  6347. computer terminals were not a familiar sight to the average person.
  6348. When the two friends got to the hospital, a guard stopped them and asked
  6349. what they were carrying.  They explained that they wanted to take a
  6350. computer terminal to their friend who was a patient.
  6351.  
  6352. The guard got out his list of things that patients were permitted to
  6353. have in their rooms: TV, radio, electric razor, typewriter, tape player,
  6354. ... no computer terminals.  Computer terminals weren't on the list, so
  6355. the guard wouldn't let it in.  Rules are rules, you know.  (This guard
  6356. was clearly a {droid}.)
  6357.  
  6358. Fair enough, said the two friends, and they left again.  They were
  6359. frustrated, of course, because they knew that the terminal was as
  6360. harmless as a TV or anything else on the list... which gave them an
  6361. idea.
  6362.  
  6363. The next day they returned, and the same thing happened: a guard stopped
  6364. them and asked what they were carrying.  They said: "This is a TV
  6365. typewriter!"  The guard was skeptical, so they plugged it in and
  6366. demonstrated it.  "See?  You just type on the keyboard and what you type
  6367. shows up on the TV screen."  Now the guard didn't stop to think about
  6368. how utterly useless a typewriter would be that didn't produce any paper
  6369. copies of what you typed; but this was clearly a TV typewriter, no doubt
  6370. about it.  So he checked his list: "A TV is all right, a typewriter is
  6371. all right ... okay, take it on in!"
  6372.  
  6373. [Historical note: Many years ago, `Popular Electronics' published
  6374. solder-it-yourself plans for a TV typewriter.  Despite the essential
  6375. uselessness of the device, it was an enormously popular project.
  6376. Steve Ciarcia, the man behind `Byte' magazine's "Circuit Cellar"
  6377. feature, resurrected this ghost in one of his books of the early
  6378. 1980s.  He ascribed its popularity (no doubt correctly) to the
  6379. feeling of power the builder could achieve by being able to decide
  6380. himself what would be shown on the TV. --- ESR]
  6381.  
  6382. [Antihistorical note: On September 23rd, 1992, the L.A. Times ran
  6383. the following bit of filler:
  6384.  
  6385.      Solomon Waters of Altadena, a 6-year-old first-grader, came home from
  6386.      his first day of school and excitedly told his mother how he had
  6387.      written on "a machine that looks like a computer -- but without the
  6388.      TV screen."  She asked him if it could have been a "typewriter."
  6389.      "Yeah! Yeah!" he said.  "That's what it was called."
  6390.  
  6391. I have since investigated this matter and determined that many of
  6392. today's teenagers have never seen a slide rule, either.... -- ESR]
  6393.  
  6394. :A Story About `Magic': (by GLS)
  6395. ================================
  6396.  
  6397. Some years ago, I was snooping around in the cabinets that housed the
  6398. MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of
  6399. one cabinet.  It was obviously a homebrew job, added by one of the lab's
  6400. hardware hackers (no one knows who).
  6401.  
  6402. You don't touch an unknown switch on a computer without knowing what it
  6403. does, because you might crash the computer.  The switch was labeled in a
  6404. most unhelpful way.  It had two positions, and scrawled in pencil on the
  6405. metal switch body were the words `magic' and `more magic'.  The switch
  6406. was in the `more magic' position.
  6407.  
  6408. I called another hacker over to look at it.  He had never seen the
  6409. switch before either.  Closer examination revealed that the switch had
  6410. only one wire running to it!  The other end of the wire did disappear
  6411. into the maze of wires inside the computer, but it's a basic fact of
  6412. electricity that a switch can't do anything unless there are two wires
  6413. connected to it.  This switch had a wire connected on one side and no
  6414. wire on its other side.
  6415.  
  6416. It was clear that this switch was someone's idea of a silly joke.
  6417. Convinced by our reasoning that the switch was inoperative, we flipped
  6418. it.  The computer instantly crashed.
  6419.  
  6420. Imagine our utter astonishment.  We wrote it off as coincidence, but
  6421. nevertheless restored the switch to the `more magic' position before
  6422. reviving the computer.
  6423.  
  6424. A year later, I told this story to yet another hacker, David Moon as I
  6425. recall.  He clearly doubted my sanity, or suspected me of a supernatural
  6426. belief in the power of this switch, or perhaps thought I was fooling him
  6427. with a bogus saga.  To prove it to him, I showed him the very switch,
  6428. still glued to the cabinet frame with only one wire connected to it,
  6429. still in the `more magic' position.  We scrutinized the switch and its
  6430. lone connection, and found that the other end of the wire, though
  6431. connected to the computer wiring, was connected to a ground pin.  That
  6432. clearly made the switch doubly useless: not only was it electrically
  6433. nonoperative, but it was connected to a place that couldn't affect
  6434. anything anyway.  So we flipped the switch.
  6435.  
  6436. The computer promptly crashed.
  6437.  
  6438. This time we ran for Richard Greenblatt, a long-time MIT hacker, who was
  6439. close at hand.  He had never noticed the switch before, either.  He
  6440. inspected it, concluded it was useless, got some diagonal cutters and
  6441. {dike}d it out.  We then revived the computer and it has run fine ever
  6442. since.
  6443.  
  6444. We still don't know how the switch crashed the machine.  There is a
  6445. theory that some circuit near the ground pin was marginal, and
  6446. flipping the switch changed the electrical capacitance enough to upset
  6447. the circuit as millionth-of-a-second pulses went through it.  But
  6448. we'll never know for sure; all we can really say is that the switch
  6449. was {magic}.
  6450.  
  6451. I still have that switch in my basement.  Maybe I'm silly, but I
  6452. usually keep it set on `more magic'.
  6453.  
  6454. :A Selection of AI Koans:
  6455. =========================
  6456.  
  6457. These are some of the funniest examples of a genre of jokes told at the
  6458. MIT AI Lab about various noted hackers.  The original koans were
  6459. composed by Danny Hillis.  In reading these, it is at least useful to
  6460. know that Minsky, Sussman, and Drescher are AI researchers of note, that
  6461. Tom Knight was one of the Lisp machine's principal designers, and that
  6462. David Moon wrote much of Lisp machine Lisp.
  6463.  
  6464.                                  * * *
  6465.  
  6466.    A novice was trying to fix a broken Lisp machine by turning the power
  6467. off and on.
  6468.  
  6469.    Knight, seeing what the student was doing, spoke sternly: "You cannot
  6470. fix a machine by just power-cycling it with no understanding of what is
  6471. going wrong."
  6472.  
  6473.    Knight turned the machine off and on.
  6474.  
  6475.    The machine worked.
  6476.  
  6477.                                  * * *
  6478.  
  6479.    One day a student came to Moon and said: "I understand how to make a
  6480. better garbage collector.  We must keep a reference count of the
  6481. pointers to each cons."
  6482.  
  6483. Moon patiently told the student the following story:
  6484.  
  6485.      "One day a student came to Moon and said: `I understand how to make
  6486.      a better garbage collector...
  6487.  
  6488. [Ed. note: Pure reference-count garbage collectors have problems with
  6489. circular structures that point to themselves.]
  6490.  
  6491.                                  * * *
  6492.  
  6493. In the days when Sussman was a novice, Minsky once came to him as he sat
  6494. hacking at the PDP-6.
  6495.  
  6496.    "What are you doing?", asked Minsky.
  6497.  
  6498.    "I am training a randomly wired neural net to play Tic-Tac-Toe"
  6499. Sussman replied.
  6500.  
  6501.    "Why is the net wired randomly?", asked Minsky.
  6502.  
  6503.    "I do not want it to have any preconceptions of how to play", Sussman
  6504. said.
  6505.  
  6506.    Minsky then shut his eyes.
  6507.  
  6508.    "Why do you close your eyes?", Sussman asked his teacher.
  6509.  
  6510.    "So that the room will be empty."
  6511.  
  6512.    At that moment, Sussman was enlightened.
  6513.  
  6514.                                  * * *
  6515.  
  6516.    A disciple of another sect once came to Drescher as he was eating his
  6517. morning meal.
  6518.  
  6519.    "I would like to give you this personality test", said the outsider,
  6520. "because I want you to be happy."
  6521.  
  6522.    Drescher took the paper that was offered him and put it into the
  6523. toaster, saying: "I wish the toaster to be happy, too."
  6524.  
  6525. :OS and JEDGAR:
  6526. ===============
  6527.  
  6528. This story says a lot about the the ITS ethos. 
  6529.  
  6530. On the ITS system there was a program that allowed you to see what was
  6531. being printed on someone else's terminal.  It spied on the other guy's
  6532. output by examining the insides of the monitor system.  The output spy
  6533. program was called OS.  Throughout the rest of the computer science (and
  6534. at IBM too) OS means `operating system', but among old-time ITS hackers
  6535. it almost always meant `output spy'.
  6536.  
  6537. OS could work because ITS purposely had very little in the way of
  6538. `protection' that prevented one user from trespassing on another's
  6539. areas.  Fair is fair, however.  There was another program that would
  6540. automatically notify you if anyone started to spy on your output.  It
  6541. worked in exactly the same way, by looking at the insides of the
  6542. operating system to see if anyone else was looking at the insides that
  6543. had to do with your output.  This `counterspy' program was called JEDGAR
  6544. (a six-letterism pronounced as two syllables: /jed'gr/), in honor of the
  6545. former head of the FBI.
  6546.  
  6547. But there's more.  JEDGAR would ask the user for `license to kill'.  If
  6548. the user said yes, then JEDGAR would actually {gun} the job of the
  6549. {luser} who was spying.  Unfortunately, people found that this made life
  6550. too violent, especially when tourists learned about it.  One of the
  6551. systems hackers solved the problem by replacing JEDGAR with another
  6552. program that only pretended to do its job.  It took a long time to do
  6553. this, because every copy of JEDGAR had to be patched.  To this day no
  6554. one knows how many people never figured out that JEDGAR had been
  6555. defanged.
  6556.  
  6557. :The Story of Mel, a Real Programmer:
  6558. =====================================
  6559.  
  6560. This was posted to USENET by its author, Ed Nather (utastro!nather), on
  6561. May 21, 1983.
  6562.  
  6563.  
  6564.      A recent article devoted to the *macho* side of programming
  6565.      made the bald and unvarnished statement:
  6566.  
  6567.          Real Programmers write in FORTRAN.
  6568.  
  6569.      Maybe they do now,
  6570.      in this decadent era of
  6571.      Lite beer, hand calculators, and "user-friendly" software
  6572.      but back in the Good Old Days,
  6573.      when the term "software" sounded funny
  6574.      and Real Computers were made out of drums and vacuum tubes,
  6575.      Real Programmers wrote in machine code.
  6576.      Not FORTRAN.  Not RATFOR.  Not, even, assembly language.
  6577.      Machine Code.
  6578.      Raw, unadorned, inscrutable hexadecimal numbers.
  6579.      Directly.
  6580.  
  6581.      Lest a whole new generation of programmers
  6582.      grow up in ignorance of this glorious past,
  6583.      I feel duty-bound to describe,
  6584.      as best I can through the generation gap,
  6585.      how a Real Programmer wrote code.
  6586.      I'll call him Mel,
  6587.      because that was his name.
  6588.  
  6589.      I first met Mel when I went to work for Royal McBee Computer Corp.,
  6590.      a now-defunct subsidiary of the typewriter company.
  6591.      The firm manufactured the LGP-30,
  6592.      a small, cheap (by the standards of the day)
  6593.      drum-memory computer,
  6594.      and had just started to manufacture
  6595.      the RPC-4000, a much-improved,
  6596.      bigger, better, faster --- drum-memory computer.
  6597.      Cores cost too much,
  6598.      and weren't here to stay, anyway.
  6599.      (That's why you haven't heard of the company, or the computer.)
  6600.  
  6601.      I had been hired to write a FORTRAN compiler
  6602.      for this new marvel and Mel was my guide to its wonders.
  6603.      Mel didn't approve of compilers.
  6604.  
  6605.      "If a program can't rewrite its own code",
  6606.      he asked, "what good is it?"
  6607.  
  6608.      Mel had written,
  6609.      in hexadecimal,
  6610.      the most popular computer program the company owned.
  6611.      It ran on the LGP-30
  6612.      and played blackjack with potential customers
  6613.      at computer shows.
  6614.      Its effect was always dramatic.
  6615.      The LGP-30 booth was packed at every show,
  6616.      and the IBM salesmen stood around
  6617.      talking to each other.
  6618.      Whether or not this actually sold computers
  6619.      was a question we never discussed.
  6620.  
  6621.      Mel's job was to re-write
  6622.      the blackjack program for the RPC-4000.
  6623.      (Port?  What does that mean?)
  6624.      The new computer had a one-plus-one
  6625.      addressing scheme,
  6626.      in which each machine instruction,
  6627.      in addition to the operation code
  6628.      and the address of the needed operand,
  6629.      had a second address that indicated where, on the revolving drum,
  6630.      the next instruction was located.
  6631.  
  6632.      In modern parlance,
  6633.      every single instruction was followed by a GO TO!
  6634.      Put *that* in Pascal's pipe and smoke it.
  6635.  
  6636.      Mel loved the RPC-4000
  6637.      because he could optimize his code:
  6638.      that is, locate instructions on the drum
  6639.      so that just as one finished its job,
  6640.      the next would be just arriving at the "read head"
  6641.      and available for immediate execution.
  6642.      There was a program to do that job,
  6643.      an "optimizing assembler",
  6644.      but Mel refused to use it.
  6645.  
  6646.      "You never know where it's going to put things",
  6647.      he explained, "so you'd have to use separate constants".
  6648.  
  6649.      It was a long time before I understood that remark.
  6650.      Since Mel knew the numerical value
  6651.      of every operation code,
  6652.      and assigned his own drum addresses,
  6653.      every instruction he wrote could also be considered
  6654.      a numerical constant.
  6655.      He could pick up an earlier "add" instruction, say,
  6656.      and multiply by it,
  6657.      if it had the right numeric value.
  6658.      His code was not easy for someone else to modify.
  6659.  
  6660.      I compared Mel's hand-optimized programs
  6661.      with the same code massaged by the optimizing assembler program,
  6662.      and Mel's always ran faster.
  6663.      That was because the "top-down" method of program design
  6664.      hadn't been invented yet,
  6665.      and Mel wouldn't have used it anyway.
  6666.      He wrote the innermost parts of his program loops first,
  6667.      so they would get first choice
  6668.      of the optimum address locations on the drum.
  6669.      The optimizing assembler wasn't smart enough to do it that way.
  6670.  
  6671.      Mel never wrote time-delay loops, either,
  6672.      even when the balky Flexowriter
  6673.      required a delay between output characters to work right.
  6674.      He just located instructions on the drum
  6675.      so each successive one was just *past* the read head
  6676.      when it was needed;
  6677.      the drum had to execute another complete revolution
  6678.      to find the next instruction.
  6679.      He coined an unforgettable term for this procedure.
  6680.      Although "optimum" is an absolute term,
  6681.      like "unique", it became common verbal practice
  6682.      to make it relative:
  6683.      "not quite optimum" or "less optimum"
  6684.      or "not very optimum".
  6685.      Mel called the maximum time-delay locations
  6686.      the "most pessimum".
  6687.  
  6688.      After he finished the blackjack program
  6689.      and got it to run
  6690.      ("Even the initializer is optimized",
  6691.      he said proudly),
  6692.      he got a Change Request from the sales department.
  6693.      The program used an elegant (optimized)
  6694.      random number generator
  6695.      to shuffle the "cards" and deal from the "deck",
  6696.      and some of the salesmen felt it was too fair,
  6697.      since sometimes the customers lost.
  6698.      They wanted Mel to modify the program
  6699.      so, at the setting of a sense switch on the console,
  6700.      they could change the odds and let the customer win.
  6701.  
  6702.      Mel balked.
  6703.      He felt this was patently dishonest,
  6704.      which it was,
  6705.      and that it impinged on his personal integrity as a programmer,
  6706.      which it did,
  6707.      so he refused to do it.
  6708.      The Head Salesman talked to Mel,
  6709.      as did the Big Boss and, at the boss's urging,
  6710.      a few Fellow Programmers.
  6711.      Mel finally gave in and wrote the code,
  6712.      but he got the test backwards,
  6713.      and, when the sense switch was turned on,
  6714.      the program would cheat, winning every time.
  6715.      Mel was delighted with this,
  6716.      claiming his subconscious was uncontrollably ethical,
  6717.      and adamantly refused to fix it.
  6718.  
  6719.      After Mel had left the company for greener pa$ture$,
  6720.      the Big Boss asked me to look at the code
  6721.      and see if I could find the test and reverse it.
  6722.      Somewhat reluctantly, I agreed to look.
  6723.      Tracking Mel's code was a real adventure.
  6724.  
  6725.      I have often felt that programming is an art form,
  6726.      whose real value can only be appreciated
  6727.      by another versed in the same arcane art;
  6728.      there are lovely gems and brilliant coups
  6729.      hidden from human view and admiration, sometimes forever,
  6730.      by the very nature of the process.
  6731.      You can learn a lot about an individual
  6732.      just by reading through his code,
  6733.      even in hexadecimal.
  6734.      Mel was, I think, an unsung genius.
  6735.  
  6736.      Perhaps my greatest shock came
  6737.      when I found an innocent loop that had no test in it.
  6738.      No test.  *None*.
  6739.      Common sense said it had to be a closed loop,
  6740.      where the program would circle, forever, endlessly.
  6741.      Program control passed right through it, however,
  6742.      and safely out the other side.
  6743.      It took me two weeks to figure it out.
  6744.  
  6745.      The RPC-4000 computer had a really modern facility
  6746.      called an index register.
  6747.      It allowed the programmer to write a program loop
  6748.      that used an indexed instruction inside;
  6749.      each time through,
  6750.      the number in the index register
  6751.      was added to the address of that instruction,
  6752.      so it would refer
  6753.      to the next datum in a series.
  6754.      He had only to increment the index register
  6755.      each time through.
  6756.      Mel never used it.
  6757.  
  6758.      Instead, he would pull the instruction into a machine register,
  6759.      add one to its address,
  6760.      and store it back.
  6761.      He would then execute the modified instruction
  6762.      right from the register.
  6763.      The loop was written so this additional execution time
  6764.      was taken into account ---
  6765.      just as this instruction finished,
  6766.      the next one was right under the drum's read head,
  6767.      ready to go.
  6768.      But the loop had no test in it.
  6769.  
  6770.      The vital clue came when I noticed
  6771.      the index register bit,
  6772.      the bit that lay between the address
  6773.      and the operation code in the instruction word,
  6774.      was turned on ---
  6775.      yet Mel never used the index register,
  6776.      leaving it zero all the time.
  6777.      When the light went on it nearly blinded me.
  6778.  
  6779.      He had located the data he was working on
  6780.      near the top of memory ---
  6781.      the largest locations the instructions could address ---
  6782.      so, after the last datum was handled,
  6783.      incrementing the instruction address
  6784.      would make it overflow.
  6785.      The carry would add one to the
  6786.      operation code, changing it to the next one in the instruction set:
  6787.      a jump instruction.
  6788.      Sure enough, the next program instruction was
  6789.      in address location zero,
  6790.      and the program went happily on its way.
  6791.  
  6792.      I haven't kept in touch with Mel,
  6793.      so I don't know if he ever gave in to the flood of
  6794.      change that has washed over programming techniques
  6795.      since those long-gone days.
  6796.      I like to think he didn't.
  6797.      In any event,
  6798.      I was impressed enough that I quit looking for the
  6799.      offending test,
  6800.      telling the Big Boss I couldn't find it.
  6801.      He didn't seem surprised.
  6802.  
  6803.      When I left the company,
  6804.      the blackjack program would still cheat
  6805.      if you turned on the right sense switch,
  6806.      and I think that's how it should be.
  6807.      I didn't feel comfortable
  6808.      hacking up the code of a Real Programmer.
  6809.  
  6810.  
  6811. This is one of hackerdom's great heroic epics, free verse or no.  In a
  6812. few spare images it captures more about the esthetics and psychology of
  6813. hacking than all the scholarly volumes on the subject put together.  For
  6814. an opposing point of view, see the entry for {real programmer}.
  6815.  
  6816. [1992 postscript --- the author writes: "The original submission to
  6817. the net was not in free verse, nor any approximation to it --- it was
  6818. straight prose style, in non-justified paragraphs.  In bouncing around
  6819. the net it apparently got modified into the `free verse' form now
  6820. popular.  In other words, it got hacked on the net.  That seems
  6821. appropriate, somehow."]
  6822.  
  6823. :Appendix B: A Portrait of J. Random Hacker
  6824. *******************************************
  6825.  
  6826. This profile reflects detailed comments on an earlier `trial balloon'
  6827. version from about a hundred USENET respondents.  Where comparatives are
  6828. used, the implicit `other' is a randomly selected segment of the
  6829. non-hacker population of the same size as hackerdom.
  6830.  
  6831. An important point: Except in some relatively minor respects such as
  6832. slang vocabulary, hackers don't get to be the way they are by imitating
  6833. each other.  Rather, it seems to be the case that the combination of
  6834. personality traits that makes a hacker so conditions one's outlook on
  6835. life that one tends to end up being like other hackers whether one wants
  6836. to or not (much as bizarrely detailed similarities in behavior and
  6837. preferences are found in genetic twins raised separately).
  6838.  
  6839.  
  6840. :General Appearance:
  6841. ====================
  6842.  
  6843. Intelligent.  Scruffy.  Intense.  Abstracted.  Surprisingly for a
  6844. sedentary profession, more hackers run to skinny than fat; both
  6845. extremes are more common than elsewhere.  Tans are rare.
  6846.  
  6847.  
  6848. :Dress:
  6849. =======
  6850.  
  6851. Casual, vaguely post-hippie; T-shirts, jeans, running shoes,
  6852. Birk-enstocks (or bare feet).  Long hair, beards, and moustaches are
  6853. common.  High incidence of tie-dye and intellectual or humorous `slogan'
  6854. T-shirts (only rarely computer related; that would be too obvious).
  6855.  
  6856. A substantial minority prefers `outdoorsy' clothing --- hiking boots
  6857. ("in case a mountain should suddenly spring up in the machine room", as
  6858. one famous parody put it), khakis, lumberjack or chamois shirts, and the
  6859. like.
  6860.  
  6861. Very few actually fit the `National Lampoon' Nerd stereotype, though it
  6862. lingers on at MIT and may have been more common before 1975.  These
  6863. days, backpacks are more common than briefcases, and the hacker `look'
  6864. is more whole-earth than whole-polyester.
  6865.  
  6866. Hackers dress for comfort, function, and minimal maintenance hassles
  6867. rather than for appearance (some, perhaps unfortunately, take this to
  6868. extremes and neglect personal hygiene).  They have a very low tolerance
  6869. of suits and other `business' attire; in fact, it is not uncommon for
  6870. hackers to quit a job rather than conform to a dress code.
  6871.  
  6872. Female hackers almost never wear visible makeup, and many use none at
  6873. all.
  6874.  
  6875.  
  6876. :Reading Habits:
  6877. ================
  6878.  
  6879. Omnivorous, but usually includes lots of science and science fiction.
  6880. The typical hacker household might subscribe to `Analog', `Scientific
  6881. American', `Co-Evolution Quarterly', and `Smithsonian'.  Hackers often
  6882. have a reading range that astonishes liberal arts people but tend not to
  6883. talk about it as much.  Many hackers spend as much of their spare time
  6884. reading as the average American burns up watching TV, and often keep
  6885. shelves and shelves of well-thumbed books in their homes.
  6886.  
  6887.  
  6888. :Other Interests:
  6889. =================
  6890.  
  6891. Some hobbies are widely shared and recognized as going with the culture:
  6892. science fiction, music, medievalism (in the active form practiced by the
  6893. Society for Creative Anachronism and similar organizations), chess, go,
  6894. backgammon, wargames, and intellectual games of all kinds.
  6895. (Role-playing games such as Dungeons and Dragons used to be extremely
  6896. popular among hackers but they lost a bit of their luster as they moved
  6897. into the mainstream and became heavily commercialized.)  Logic puzzles.
  6898. Ham radio.  Other interests that seem to correlate less strongly but
  6899. positively with hackerdom include linguistics and theater teching.
  6900.  
  6901.  
  6902. :Physical Activity and Sports:
  6903. ==============================
  6904.  
  6905. Many (perhaps even most) hackers don't follow or do sports at all and
  6906. are determinedly anti-physical.  Among those who do, interest in
  6907. spectator sports is low to non-existent; sports are something one
  6908. *does*, not something one watches on TV.
  6909.  
  6910. Further, hackers avoid most team sports like the plague (volleyball is a
  6911. notable exception, perhaps because it's non-contact and relatively
  6912. friendly).  Hacker sports are almost always primarily self-competitive
  6913. ones involving concentration, stamina, and micromotor skills: martial
  6914. arts, bicycling, auto racing, kite flying, hiking, rock climbing,
  6915. aviation, target-shooting, sailing, caving, juggling, skiing, skating
  6916. (ice and roller).  Hackers' delight in techno-toys also tends to draw
  6917. them towards hobbies with nifty complicated equipment that they can
  6918. tinker with.
  6919.  
  6920.  
  6921. :Education:
  6922. ===========
  6923.  
  6924. Nearly all hackers past their teens are either college-degreed or
  6925. self-educated to an equivalent level.  The self-taught hacker is often
  6926. considered (at least by other hackers) to be better-motivated, and may
  6927. be more respected, than his school-shaped counterpart.  Academic areas
  6928. from which people often gravitate into hackerdom include (besides the
  6929. obvious computer science and electrical engineering) physics,
  6930. mathematics, linguistics, and philosophy.
  6931.  
  6932.  
  6933. :Things Hackers Detest and Avoid:
  6934. =================================
  6935.  
  6936. IBM mainframes.  Smurfs, Ewoks, and other forms of offensive cuteness.
  6937. Bureaucracies.  Stupid people.  Easy listening music.  Television
  6938. (except for cartoons, movies, the old "Star Trek", and the new
  6939. "Simpsons").  Business suits.  Dishonesty.  Incompetence.
  6940. Boredom.  COBOL. BASIC.  Character-based menu interfaces.
  6941.  
  6942.  
  6943. :Food:
  6944. ======
  6945.  
  6946. Ethnic.  Spicy.  Oriental, esp. Chinese and most esp. Szechuan, Hunan,
  6947. and Mandarin (hackers consider Cantonese vaguely d'eclass'e).  Hackers
  6948. prefer the exotic; for example, the Japanese-food fans among them will
  6949. eat with gusto such delicacies as fugu (poisonous pufferfish) and
  6950. whale.  Thai food has experienced flurries of popularity.  Where
  6951. available, high-quality Jewish delicatessen food is much esteemed.  A
  6952. visible minority of Southwestern and Pacific Coast hackers prefers
  6953. Mexican.
  6954.  
  6955. For those all-night hacks, pizza and microwaved burritos are big.
  6956. Interestingly, though the mainstream culture has tended to think of
  6957. hackers as incorrigible junk-food junkies, many have at least mildly
  6958. health-foodist attitudes and are fairly discriminating about what they
  6959. eat.  This may be generational; anecdotal evidence suggests that the
  6960. stereotype was more on the mark 10--15 years ago.
  6961.  
  6962.  
  6963. :Politics:
  6964. ==========
  6965.  
  6966. Vaguely left of center, except for the strong libertarian contingent
  6967. which rejects conventional left-right politics entirely.  The only safe
  6968. generalization is that hackers tend to be rather anti-authoritarian;
  6969. thus, both conventional conservatism and `hard' leftism are rare.
  6970. Hackers are far more likely than most non-hackers to either (a) be
  6971. aggressively apolitical or (b) entertain peculiar or idiosyncratic
  6972. political ideas and actually try to live by them day-to-day.
  6973.  
  6974.  
  6975. :Gender and Ethnicity:
  6976. ======================
  6977.  
  6978. Hackerdom is still predominantly male.  However, the percentage of women
  6979. is clearly higher than the low-single-digit range typical for technical
  6980. professions, and female hackers are generally respected and dealt with
  6981. as equals.
  6982.  
  6983. In the U.S., hackerdom is predominantly Caucasian with strong minorities
  6984. of Jews (East Coast) and Orientals (West Coast).  The Jewish contingent
  6985. has exerted a particularly pervasive cultural influence (see {Food},
  6986. above, and note that several common jargon terms are obviously mutated
  6987. Yiddish).
  6988.  
  6989. The ethnic distribution of hackers is understood by them to be a
  6990. function of which ethnic groups tend to seek and value education.
  6991. Racial and ethnic prejudice is notably uncommon and tends to be met with
  6992. freezing contempt.
  6993.  
  6994. When asked, hackers often ascribe their culture's gender- and
  6995. color-blindness to a positive effect of text-only network channels,
  6996. and this is doubtless a powerful influence.  Also, the ties many
  6997. hackers have to AI research and SF literature may have helped them to
  6998. develop an idea of personhood that is inclusive rather than exclusive
  6999. --- after all, if one's imagination readily grants full human rights to AI
  7000. programs, robots, dolphins, and extraterrestrial aliens, mere color and
  7001. gender can't seem very important any more.
  7002.  
  7003.  
  7004. :Religion:
  7005. ==========
  7006.  
  7007.  
  7008. Agnostic.  Atheist.  Non-observant Jewish.  Neo-pagan.  Very commonly,
  7009. three or more of these are combined in the same person.  Conventional
  7010. faith-holding Christianity is rare though not unknown.
  7011.  
  7012. Even hackers who identify with a religious affiliation tend to be
  7013. relaxed about it, hostile to organized religion in general and all forms
  7014. of religious bigotry in particular.  Many enjoy `parody' religions such
  7015. as Discordianism and the Church of the SubGenius.
  7016.  
  7017. Also, many hackers are influenced to varying degrees by Zen Buddhism or
  7018. (less commonly) Taoism, and blend them easily with their `native'
  7019. religions.
  7020.  
  7021. There is a definite strain of mystical, almost Gnostic sensibility that
  7022. shows up even among those hackers not actively involved with
  7023. neo-paganism, Discordianism, or Zen.  Hacker folklore that pays homage
  7024. to `wizards' and speaks of incantations and demons has too much
  7025. psychological truthfulness about it to be entirely a joke.
  7026.  
  7027.  
  7028. :Ceremonial Chemicals:
  7029. ======================
  7030.  
  7031. Most hackers don't smoke tobacco, and use alcohol in moderation if at
  7032. all (though there is a visible contingent of exotic-beer fanciers, and a
  7033. few hackers are serious oenophiles).  Limited use of non-addictive
  7034. psychedelic drugs, such as cannabis, LSD, psilocybin, and nitrous oxide,
  7035. etc., used to be relatively common and is still regarded with more
  7036. tolerance than in the mainstream culture.  Use of `downers' and opiates,
  7037. on the other hand, appears to be particularly rare; hackers seem in
  7038. general to dislike drugs that `dumb them down'.  On the third hand, many
  7039. hackers regularly wire up on caffeine and/or sugar for all-night hacking
  7040. runs.
  7041.  
  7042.  
  7043. :Communication Style:
  7044. =====================
  7045.  
  7046. See the discussions of speech and writing styles near the beginning of
  7047. this File.  Though hackers often have poor person-to-person
  7048. communication skills, they are as a rule extremely sensitive to nuances
  7049. of language and very precise in their use of it.  They are often better
  7050. at writing than at speaking.
  7051.  
  7052.  
  7053. :Geographical Distribution:
  7054. ===========================
  7055.  
  7056. In the United States, hackerdom revolves on a Bay Area-to-Boston axis;
  7057. about half of the hard core seems to live within a hundred miles of
  7058. Cambridge (Massachusetts) or Berkeley (California), although there are
  7059. significant contingents in Los Angeles, in the Pacific Northwest, and
  7060. around Washington DC.  Hackers tend to cluster around large cities,
  7061. especially `university towns' such as the Raleigh-Durham area in North
  7062. Carolina or Princeton, New Jersey (this may simply reflect the fact that
  7063. many are students or ex-students living near their alma maters).
  7064.  
  7065.  
  7066. :Sexual Habits:
  7067. ===============
  7068.  
  7069. Hackerdom tolerates a much wider range of sexual and lifestyle variation
  7070. than the mainstream culture.  It includes a relatively large gay and bi
  7071. contingent.  Hackers are somewhat more likely to live in polygynous or
  7072. polyandrous relationships, practice open marriage, or live in communes
  7073. or group houses.  In this, as in general appearance, hackerdom
  7074. semi-consciously maintains `counterculture' values.
  7075.  
  7076.  
  7077. :Personality Characteristics:
  7078. =============================
  7079.  
  7080. The most obvious common `personality' characteristics of hackers are
  7081. high intelligence, consuming curiosity, and facility with intellectual
  7082. abstractions.  Also, most hackers are `neophiles', stimulated by and
  7083. appreciative of novelty (especially intellectual novelty).  Most are
  7084. also relatively individualistic and anti-conformist.
  7085.  
  7086. Although high general intelligence is common among hackers, it is not
  7087. the sine qua non one might expect.  Another trait is probably even more
  7088. important: the ability to mentally absorb, retain, and reference large
  7089. amounts of `meaningless' detail, trusting to later experience to give it
  7090. context and meaning.  A person of merely average analytical intelligence
  7091. who has this trait can become an effective hacker, but a creative genius
  7092. who lacks it will swiftly find himself outdistanced by people who
  7093. routinely upload the contents of thick reference manuals into their
  7094. brains.  [During the production of the book version of this document,
  7095. for example, I learned most of the rather complex typesetting language
  7096. TeX over about four working days, mainly by inhaling Knuth's 477-page
  7097. manual.  My editor's flabbergasted reaction to this genuinely surprised
  7098. me, because years of associating with hackers have conditioned me to
  7099. consider such performances routine and to be expected. --- ESR]
  7100.  
  7101. Contrary to stereotype, hackers are *not* usually intellectually narrow;
  7102. they tend to be interested in any subject that can provide mental
  7103. stimulation, and can often discourse knowledgeably and even
  7104. interestingly on any number of obscure subjects --- if you can get them
  7105. to talk at all, as opposed to, say, going back to their hacking.
  7106.  
  7107. It is noticeable (and contrary to many outsiders' expectations) that the
  7108. better a hacker is at hacking, the more likely he or she is to have
  7109. outside interests at which he or she is more than merely competent.
  7110.  
  7111. Hackers are `control freaks' in a way that has nothing to do with the
  7112. usual coercive or authoritarian connotations of the term.  In the same
  7113. way that children delight in making model trains go forward and back by
  7114. moving a switch, hackers love making complicated things like computers
  7115. do nifty stuff for them.  But it has to be *their* nifty stuff.  They
  7116. don't like tedium, nondeterminism, or most of the fussy, boring,
  7117. ill-defined little tasks that go with maintaining a normal existence.
  7118. Accordingly, they tend to be careful and orderly in their intellectual
  7119. lives and chaotic elsewhere.  Their code will be beautiful, even if
  7120. their desks are buried in 3 feet of crap.
  7121.  
  7122. Hackers are generally only very weakly motivated by conventional rewards
  7123. such as social approval or money.  They tend to be attracted by
  7124. challenges and excited by interesting toys, and to judge the interest of
  7125. work or other activities in terms of the challenges offered and the toys
  7126. they get to play with.
  7127.  
  7128. In terms of Myers-Briggs and equivalent psychometric systems, hackerdom
  7129. appears to concentrate the relatively rare INTJ and INTP types; that is,
  7130. introverted, intuitive, and thinker types (as opposed to the
  7131. extroverted-sensate personalities that predominate in the mainstream
  7132. culture).  ENT[JP] types are also concentrated among hackers but are in
  7133. a minority.
  7134.  
  7135.  
  7136. :Weaknesses of the Hacker Personality:
  7137. ======================================
  7138.  
  7139. Hackers have relatively little ability to identify emotionally with
  7140. other people.  This may be because hackers generally aren't much like
  7141. `other people'.  Unsurprisingly, hackers also tend towards
  7142. self-absorption, intellectual arrogance, and impatience with people and
  7143. tasks perceived to be wasting their time.
  7144.  
  7145. As cynical as hackers sometimes wax about the amount of idiocy in the
  7146. world, they tend by reflex to assume that everyone is as rational,
  7147. `cool', and imaginative as they consider themselves.  This bias often
  7148. contributes to weakness in communication skills.  Hackers tend to be
  7149. especially poor at confrontation and negotiation.
  7150.  
  7151. Because of their passionate embrace of (what they consider to be) the
  7152. {Right Thing}, hackers can be unfortunately intolerant and bigoted on
  7153. technical issues, in marked contrast to their general spirit of
  7154. camaraderie and tolerance of alternative viewpoints otherwise.  Old-time
  7155. {{ITS}} partisans look down on the ever-growing hordes of {{UNIX}}
  7156. hackers; UNIX aficionados despise {VMS} and {{MS-DOS}}; and hackers who
  7157. are used to conventional command-line user interfaces loathe
  7158. mouse-and-menu based systems such as the Macintosh.  Hackers who don't
  7159. indulge in {USENET} consider it a huge waste of time and {bandwidth};
  7160. fans of old adventure games such as {ADVENT} and {Zork} consider {MUD}s
  7161. to be glorified chat systems devoid of atmosphere or interesting
  7162. puzzles; hackers who are willing to devote endless hours to USENET or
  7163. MUDs consider {IRC} to be a *real* waste of time; IRCies think MUDs
  7164. might be okay if there weren't all those silly puzzles in the way.  And,
  7165. of course, there are the perennial {holy wars} --- {EMACS} vs. {vi},
  7166. {big-endian} vs.  {little-endian}, RISC vs. CISC, etc., etc., etc.  As
  7167. in society at large, the intensity and duration of these debates is
  7168. usually inversely proportional to the number of objective, factual
  7169. arguments available to buttress any position.
  7170.  
  7171. As a result of all the above traits, many hackers have difficulty
  7172. maintaining stable relationships.  At worst, they can produce the
  7173. classic {computer geek}: withdrawn, relationally incompetent, sexually
  7174. frustrated, and desperately unhappy when not submerged in his or her
  7175. craft.  Fortunately, this extreme is far less common than mainstream
  7176. folklore paints it --- but almost all hackers will recognize something
  7177. of themselves in the unflattering paragraphs above.
  7178.  
  7179. Hackers are often monumentally disorganized and sloppy about dealing
  7180. with the physical world.  Bills don't get paid on time, clutter piles up
  7181. to incredible heights in homes and offices, and minor maintenance tasks
  7182. get deferred indefinitely.
  7183.  
  7184. The sort of person who uses phrases like `incompletely socialized'
  7185. usually thinks hackers are.  Hackers regard such people with contempt
  7186. when they notice them at all.
  7187.  
  7188.  
  7189. :Miscellaneous:
  7190. ===============
  7191.  
  7192. Hackers are more likely to have cats than dogs (in fact, it is widely
  7193. grokked that cats have the hacker nature).  Many drive incredibly
  7194. decrepit heaps and forget to wash them; richer ones drive spiffy
  7195. Porsches and RX-7s and then forget to have them washed.  Almost all
  7196. hackers have terribly bad handwriting, and often fall into the habit of
  7197. block-printing everything like junior draftsmen.
  7198.  
  7199. :Appendix C: Bibliography
  7200. *************************
  7201.  
  7202. Here are some other books you can read to help you understand the hacker
  7203. mindset.
  7204.  
  7205.  
  7206. :G"odel, Escher, Bach: An Eternal Golden Braid:
  7207. Douglas Hofstadter
  7208. Basic Books, 1979
  7209. ISBN 0-394-74502-7
  7210.  
  7211. This book reads like an intellectual Grand Tour of hacker
  7212. preoccupations.  Music, mathematical logic, programming, speculations on
  7213. the nature of intelligence, biology, and Zen are woven into a brilliant
  7214. tapestry themed on the concept of encoded self-reference.  The perfect
  7215. left-brain companion to `Illuminatus'.
  7216.  
  7217.  
  7218. :Illuminatus!:
  7219.     I.   `The Eye in the Pyramid'
  7220.     II.  `The Golden Apple'
  7221.     III. `Leviathan'.
  7222. Robert Shea and Robert Anton Wilson
  7223. Dell, 1988
  7224. ISBN 0-440-53981-1
  7225.  
  7226. This work of alleged fiction is an incredible berserko-surrealist
  7227. rollercoaster of world-girdling conspiracies, intelligent dolphins, the
  7228. fall of Atlantis, who really killed JFK, sex, drugs, rock'n'roll, and
  7229. the Cosmic Giggle Factor.  First published in three volumes, but there
  7230. is now a one-volume trade paperback, carried by most chain bookstores
  7231. under SF.  The perfect right-brain companion to Hofstadter's `G"odel,
  7232. Escher, Bach'.  See {Eris}, {Discordianism}, {random numbers}, {Church
  7233. of the SubGenius}.
  7234.  
  7235.  
  7236. :The Hitchhiker's Guide to the Galaxy:
  7237. Douglas Adams
  7238. Pocket Books, 1981
  7239. ISBN 0-671-46149-4
  7240.  
  7241. This `Monty Python in Space' spoof of SF genre traditions has been
  7242. popular among hackers ever since the original British radio show.  Read
  7243. it if only to learn about Vogons (see {bogon}) and the significance of
  7244. the number 42 (see {random numbers}) --- and why the winningest chess
  7245. program of 1990 was called `Deep Thought'.
  7246.  
  7247.  
  7248. :The Tao of Programming:
  7249. James Geoffrey
  7250. Infobooks, 1987
  7251. ISBN 0-931137-07-1
  7252.  
  7253. This gentle, funny spoof of the `Tao Te Ching' contains much that is
  7254. illuminating about the hacker way of thought.  "When you have learned to
  7255. snatch the error code from the trap frame, it will be time for you to
  7256. leave."
  7257.  
  7258.  
  7259. :Hackers:
  7260. Steven Levy
  7261. Anchor/Doubleday 1984
  7262. ISBN 0-385-19195-2
  7263.  
  7264. Levy's book is at its best in describing the early MIT hackers at the
  7265. Model Railroad Club and the early days of the microcomputer revolution.
  7266. He never understood UNIX or the networks, though, and his enshrinement
  7267. of Richard Stallman as "the last true hacker" turns out (thankfully) to
  7268. have been quite misleading.  Numerous minor factual errors also mar the
  7269. text; for example, Levy's claim that the original Jargon File derived
  7270. from the TMRC Dictionary (the File originated at Stanford and was
  7271. brought to MIT in 1976; the co-authors of the first edition had never
  7272. seen the dictionary in question).  There are also numerous misspellings
  7273. in the book that inflame the passions of old-timers; as Dan Murphy, the
  7274. author of TECO, once said: "You would have thought he'd take the trouble
  7275. to spell the name of a winning editor right."  Nevertheless, this
  7276. remains a useful and stimulating book that captures the feel of several
  7277. important hackish subcultures.
  7278.  
  7279.  
  7280. :The Devil's DP Dictionary:
  7281. Stan Kelly-Bootle
  7282. McGraw-Hill, 1981
  7283. ISBN 0-07-034022-6
  7284.  
  7285. This pastiche of Ambrose Bierce's famous work is similar in format to
  7286. the Jargon File (and quotes several entries from jargon-1) but somewhat
  7287. different in tone and intent.  It is more satirical and less
  7288. anthropological, and is largely a product of the author's literate and
  7289. quirky imagination.  For example, it defines `computer science' as "a
  7290. study akin to numerology and astrology, but lacking the precision of the
  7291. former and the success of the latter" and "the boring art of coping with
  7292. a large number of trivialities."
  7293.  
  7294.  
  7295. :The Devouring Fungus: Tales from the Computer Age:
  7296. Karla Jennings
  7297. Norton, 1990
  7298. ISBN 0-393-30732-8
  7299.  
  7300. The author of this pioneering compendium knits together a great deal of
  7301. computer- and hacker-related folklore with good writing and a few
  7302. well-chosen cartoons.  She has a keen eye for the human aspects of the
  7303. lore and is very good at illuminating the psychology and evolution of
  7304. hackerdom.  Unfortunately, a number of small errors and awkwardnesses
  7305. suggest that she didn't have the final manuscript checked over by a
  7306. native speaker; the glossary in the back is particularly embarrassing,
  7307. and at least one classic tale (the Magic Switch story, retold here under
  7308. {A Story About `Magic'} in {appendix A}) is given in incomplete and
  7309. badly mangled form.  Nevertheless, this book is a win overall and can be
  7310. enjoyed by hacker and non-hacker alike.
  7311.  
  7312.  
  7313. :The Soul of a New Machine:
  7314. Tracy Kidder
  7315. Little, Brown, 1981
  7316. (paperback: Avon, 1982
  7317. ISBN 0-380-59931-7)
  7318.  
  7319. This book (a 1982 Pulitzer Prize winner) documents the adventure of the
  7320. design of a new Data General computer, the Eclipse.  It is an amazingly
  7321. well-done portrait of the hacker mindset --- although largely the
  7322. hardware hacker --- done by a complete outsider.  It is a bit thin in
  7323. spots, but with enough technical information to be entertaining to the
  7324. serious hacker while providing non-technical people a view of what
  7325. day-to-day life can be like --- the fun, the excitement, the disasters.
  7326. During one period, when the microcode and logic were glitching at the
  7327. nanosecond level, one of the overworked engineers departed the company,
  7328. leaving behind a note on his terminal as his letter of resignation: "I
  7329. am going to a commune in Vermont and will deal with no unit of time
  7330. shorter than a season."
  7331.  
  7332.  
  7333. :Life with UNIX: a Guide for Everyone:
  7334. Don Libes and Sandy Ressler
  7335. Prentice-Hall, 1989
  7336. ISBN 0-13-536657-7
  7337.  
  7338. The authors of this book set out to tell you all the things about UNIX
  7339. that tutorials and technical books won't.  The result is gossipy, funny,
  7340. opinionated, downright weird in spots, and invaluable.  Along the way
  7341. they expose you to enough of UNIX's history, folklore and humor to
  7342. qualify as a first-class source for these things.  Because so much of
  7343. today's hackerdom is involved with UNIX, this in turn illuminates many
  7344. of its in-jokes and preoccupations.
  7345.  
  7346.  
  7347. :True Names ... and Other Dangers:
  7348. Vernor Vinge
  7349. Baen Books, 1987
  7350. ISBN 0-671-65363-6
  7351.  
  7352. Hacker demigod Richard Stallman believes the title story of this book
  7353. "expresses the spirit of hacking best".  This may well be true; it's
  7354. certainly difficult to recall a better job.  The other stories in this
  7355. collection are also fine work by an author who is perhaps one of today's
  7356. very best practitioners of hard SF.
  7357.  
  7358.  
  7359. :Cyberpunk: Outlaws and Hackers on the Computer Frontier:
  7360. Katie Hafner & John Markoff
  7361. Simon & Schuster 1991
  7362. ISBN 0-671-68322-5
  7363.  
  7364. This book gathers narratives about the careers of three notorious
  7365. crackers into a clear-eyed but sympathetic portrait of hackerdom's dark
  7366. side.  The principals are Kevin Mitnick, "Pengo" and "Hagbard" of the
  7367. Chaos Computer Club, and Robert T. Morris (see {RTM}, sense 2) .
  7368. Markoff and Hafner focus as much on their psychologies and motivations
  7369. as on the details of their exploits, but don't slight the latter.  The
  7370. result is a balanced and fascinating account, particularly useful when
  7371. read immediately before or after Cliff Stoll's {The Cuckoo's Egg}.  It
  7372. is especially instructive to compare RTM, a true hacker who blundered,
  7373. with the sociopathic phone-freak Mitnick and the alienated, drug-addled
  7374. crackers who made the Chaos Club notorious.  The gulf between {wizard}
  7375. and {wannabee} has seldom been made more obvious.
  7376.  
  7377.  
  7378. :Technobabble:
  7379. John Barry
  7380. MIT Press 1991
  7381. ISBN 0-262-02333-4
  7382.  
  7383. Barry's book takes a critical and humorous look at the `technobabble' of
  7384. acronyms, neologisms, hyperbole, and metaphor spawned by the computer
  7385. industry.  Though he discusses some of the same mechanisms of jargon
  7386. formation that occur in hackish, most of what he chronicles is actually
  7387. suit-speak --- the obfuscatory language of press releases, marketroids,
  7388. and Silicon Valley CEOs rather than the playful jargon of hackers (most
  7389. of whom wouldn't be caught dead uttering the kind of pompous,
  7390. passive-voiced word salad he deplores).
  7391.  
  7392.  
  7393. :The Cuckoo's Egg:
  7394. Clifford Stoll
  7395. Doubleday 1989
  7396. ISBN 0-385-24946-2
  7397.  
  7398. Clifford Stoll's absorbing tale of how he tracked Markus Hess and the
  7399. Chaos Club cracking ring nicely illustrates the difference between
  7400. `hacker' and `cracker'.  Stoll's portrait of himself, his lady Martha,
  7401. and his friends at Berkeley and on the Internet paints a marvelously
  7402. vivid picture of how hackers and the people around them like to live and
  7403. what they think.
  7404.  
  7405. #====================== THE JARGON FILE ENDS HERE ======================#
  7406.  
  7407.  
  7408. X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X
  7409.  Another file downloaded from:                     The NIRVANAnet(tm) Seven
  7410.  
  7411.  & the Temple of the Screaming Electron   Taipan Enigma        510/935-5845
  7412.  Burn This Flag                           Zardoz               408/363-9766
  7413.  realitycheck                             Poindexter Fortran   510/527-1662
  7414.  Lies Unlimited                           Mick Freen           801/278-2699
  7415.  The New Dork Sublime                     Biffnix              415/864-DORK
  7416.  The Shrine                               Rif Raf              206/794-6674
  7417.  Planet Mirth                             Simon Jester         510/786-6560
  7418.  
  7419.                           "Raw Data for Raw Nerves"
  7420. X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X
  7421.